cerber412
Дата: Вторник, 28.02.2017, 21:44 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Добрый вечер,уважаемые специалисты по экселю. Помогите решить проблему. На листе моего файла в столбце записан ряд чисел. Числовой ряд в исходном виде (оранжевый столбец) выглядит так 1,0,0,01,1,1,0,1,1,0,1,1. Диаграмма по этому ряду - имеет дискретный вид (либо 0 либо 1 - то есть гистограмма). Эту же диаграмму можно представить с накопительным эффектом. Она будет иметь вид: 1,-3,3,-1,2,-1,2. То есть зеленый столбец будет суммировать накопление одинаковых значений идущих в оранжевом столбце. Например три нуля идущие подряд - это "-3". Две единицы идущие подряд - это "2". (то есть 0 означает спад на "-1", а 1 - означает подъем на "+1". И если значения идут подряд - то происходит суммирование). Путем многократных преобразований получил что нужно. Но у меня на видоизменение оранжевого столбца - в зеленый столбец- уходит аж семь операций. Вопрос - нельзя ли 7 операций (преобразования оранжевого столбца в зеленый), представленных красными стрелочками на листе, заменить на одну единственную операцию - представленную зеленой стрелочкой ? То есть можно как-то одной формулой осуществить преобразование оранжевого столбца в зеленый ?
Добрый вечер,уважаемые специалисты по экселю. Помогите решить проблему. На листе моего файла в столбце записан ряд чисел. Числовой ряд в исходном виде (оранжевый столбец) выглядит так 1,0,0,01,1,1,0,1,1,0,1,1. Диаграмма по этому ряду - имеет дискретный вид (либо 0 либо 1 - то есть гистограмма). Эту же диаграмму можно представить с накопительным эффектом. Она будет иметь вид: 1,-3,3,-1,2,-1,2. То есть зеленый столбец будет суммировать накопление одинаковых значений идущих в оранжевом столбце. Например три нуля идущие подряд - это "-3". Две единицы идущие подряд - это "2". (то есть 0 означает спад на "-1", а 1 - означает подъем на "+1". И если значения идут подряд - то происходит суммирование). Путем многократных преобразований получил что нужно. Но у меня на видоизменение оранжевого столбца - в зеленый столбец- уходит аж семь операций. Вопрос - нельзя ли 7 операций (преобразования оранжевого столбца в зеленый), представленных красными стрелочками на листе, заменить на одну единственную операцию - представленную зеленой стрелочкой ? То есть можно как-то одной формулой осуществить преобразование оранжевого столбца в зеленый ? cerber412
Ответить
Сообщение Добрый вечер,уважаемые специалисты по экселю. Помогите решить проблему. На листе моего файла в столбце записан ряд чисел. Числовой ряд в исходном виде (оранжевый столбец) выглядит так 1,0,0,01,1,1,0,1,1,0,1,1. Диаграмма по этому ряду - имеет дискретный вид (либо 0 либо 1 - то есть гистограмма). Эту же диаграмму можно представить с накопительным эффектом. Она будет иметь вид: 1,-3,3,-1,2,-1,2. То есть зеленый столбец будет суммировать накопление одинаковых значений идущих в оранжевом столбце. Например три нуля идущие подряд - это "-3". Две единицы идущие подряд - это "2". (то есть 0 означает спад на "-1", а 1 - означает подъем на "+1". И если значения идут подряд - то происходит суммирование). Путем многократных преобразований получил что нужно. Но у меня на видоизменение оранжевого столбца - в зеленый столбец- уходит аж семь операций. Вопрос - нельзя ли 7 операций (преобразования оранжевого столбца в зеленый), представленных красными стрелочками на листе, заменить на одну единственную операцию - представленную зеленой стрелочкой ? То есть можно как-то одной формулой осуществить преобразование оранжевого столбца в зеленый ? Автор - cerber412 Дата добавления - 28.02.2017 в 21:44
_Boroda_
Дата: Среда, 01.03.2017, 01:43 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16885
Репутация:
6599
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Если, тогда поприкалываюсь без допстолбцовКод
=ОТБР(ЕСЛИОШИБКА(--ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(пол;1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(отр;1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(N$109:N109)+1)%=ОКРУГЛ(ОСТАТ(пол;1);2));пол);-ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(пол;1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(отр;1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(N$109:N109)+1)%=ОКРУГЛ(ОСТАТ(отр;1);2));отр)))
где "пол" и "отр" имена (посмотреть можно, нажав Контрл F3)Код
=ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99")
иКод
=ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99")
Без имен формула такаяКод
=ОТБР(ЕСЛИОШИБКА(--ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(O$109:O109)+1)%=ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1);2));ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99"));-ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(O$109:O109)+1)%=ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1);2));ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99"))))
Не оптимизировал
Если, тогда поприкалываюсь без допстолбцовКод
=ОТБР(ЕСЛИОШИБКА(--ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(пол;1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(отр;1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(N$109:N109)+1)%=ОКРУГЛ(ОСТАТ(пол;1);2));пол);-ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(пол;1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(отр;1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(N$109:N109)+1)%=ОКРУГЛ(ОСТАТ(отр;1);2));отр)))
где "пол" и "отр" имена (посмотреть можно, нажав Контрл F3)Код
=ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99")
иКод
=ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99")
Без имен формула такаяКод
=ОТБР(ЕСЛИОШИБКА(--ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(O$109:O109)+1)%=ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1);2));ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99"));-ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(O$109:O109)+1)%=ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1);2));ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99"))))
Не оптимизировал _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Если, тогда поприкалываюсь без допстолбцовКод
=ОТБР(ЕСЛИОШИБКА(--ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(пол;1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(отр;1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(N$109:N109)+1)%=ОКРУГЛ(ОСТАТ(пол;1);2));пол);-ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(пол;1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(отр;1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(N$109:N109)+1)%=ОКРУГЛ(ОСТАТ(отр;1);2));отр)))
где "пол" и "отр" имена (посмотреть можно, нажав Контрл F3)Код
=ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99")
иКод
=ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99")
Без имен формула такаяКод
=ОТБР(ЕСЛИОШИБКА(--ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(O$109:O109)+1)%=ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1);2));ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99"));-ПРОСМОТР(;-1/(НАИМЕНЬШИЙ(НАИМЕНЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123=0)*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)+НАИБОЛЬШИЙ(ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1)/1%;0);СТРОКА($110:$123)-109)-99;СЧЁТЗ(O$109:O109)+1)%=ОКРУГЛ(ОСТАТ(ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99");1);2));ТЕКСТ(МУМНОЖ({-0,99;1};НАИМЕНЬШИЙ(('111'!$D$109:$D$123&""<>"0")*(СТРОКА('111'!$109:$123)-108);ТРАНСП(СТРОКА('111'!$110:$123))-{109:108}))-1;"[>1],00;,99;,99"))))
Не оптимизировал Автор - _Boroda_ Дата добавления - 01.03.2017 в 01:43
Nic70y
Дата: Среда, 01.03.2017, 08:03 |
Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 9130
Репутация:
2415
±
Замечаний:
0% ±
Excel 2010
вариант: в первой ячейкеКод
=(ПОИСКПОЗ(1-D110;D110:D122;)-1)*ЕСЛИ(D110>0;1;-1)
со второйКод
=ЕСЛИОШИБКА((ПОИСКПОЗ(1-(H110<0);ИНДЕКС(D$110:D$122;СУММЕСЛИ(H$110:H110;">0")-СУММЕСЛИ(H$110:H110;"<0")+1):D$122;)-1);СЧЁТ(ИНДЕКС(D$110:D$122;СУММЕСЛИ(H$110:H110;">0")-СУММЕСЛИ(H$110:H110;"<0")+1):D$122))*ЕСЛИ(H110>0;-1;1)
первую правильнее такКод
=ЕСЛИОШИБКА(ПОИСКПОЗ(1-D110;D110:D122;)-1;СЧЁТ(D110:D122))*ЕСЛИ(D110>0;1;-1)
вариант: в первой ячейкеКод
=(ПОИСКПОЗ(1-D110;D110:D122;)-1)*ЕСЛИ(D110>0;1;-1)
со второйКод
=ЕСЛИОШИБКА((ПОИСКПОЗ(1-(H110<0);ИНДЕКС(D$110:D$122;СУММЕСЛИ(H$110:H110;">0")-СУММЕСЛИ(H$110:H110;"<0")+1):D$122;)-1);СЧЁТ(ИНДЕКС(D$110:D$122;СУММЕСЛИ(H$110:H110;">0")-СУММЕСЛИ(H$110:H110;"<0")+1):D$122))*ЕСЛИ(H110>0;-1;1)
первую правильнее такКод
=ЕСЛИОШИБКА(ПОИСКПОЗ(1-D110;D110:D122;)-1;СЧЁТ(D110:D122))*ЕСЛИ(D110>0;1;-1)
Nic70y
ЮMoney 41001841029809
Сообщение отредактировал Nic70y - Среда, 01.03.2017, 08:16
Ответить
Сообщение вариант: в первой ячейкеКод
=(ПОИСКПОЗ(1-D110;D110:D122;)-1)*ЕСЛИ(D110>0;1;-1)
со второйКод
=ЕСЛИОШИБКА((ПОИСКПОЗ(1-(H110<0);ИНДЕКС(D$110:D$122;СУММЕСЛИ(H$110:H110;">0")-СУММЕСЛИ(H$110:H110;"<0")+1):D$122;)-1);СЧЁТ(ИНДЕКС(D$110:D$122;СУММЕСЛИ(H$110:H110;">0")-СУММЕСЛИ(H$110:H110;"<0")+1):D$122))*ЕСЛИ(H110>0;-1;1)
первую правильнее такКод
=ЕСЛИОШИБКА(ПОИСКПОЗ(1-D110;D110:D122;)-1;СЧЁТ(D110:D122))*ЕСЛИ(D110>0;1;-1)
Автор - Nic70y Дата добавления - 01.03.2017 в 08:03