Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Видоизменение дискретного ряда чисел - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Видоизменение дискретного ряда чисел
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 операций (преобразования оранжевого столбца в зеленый), представленных красными стрелочками на листе, заменить на одну единственную операцию - представленную зеленой стрелочкой ?
То есть можно как-то одной формулой осуществить преобразование оранжевого столбца в зеленый ?
К сообщению приложен файл: 5675675.xlsb (35.5 Kb)
 
Ответить
СообщениеДобрый вечер,уважаемые специалисты по экселю.
Помогите решить проблему.

На листе моего файла в столбце записан ряд чисел.
Числовой ряд в исходном виде (оранжевый столбец) выглядит так 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
Pelena Дата: Вторник, 28.02.2017, 23:26 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19511
Репутация: 4620 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
С одним доп. столбцом подойдёт?
К сообщению приложен файл: 7528611.xlsb (32.1 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
С одним доп. столбцом подойдёт?

Автор - Pelena
Дата добавления - 28.02.2017 в 23:26
cerber412 Дата: Среда, 01.03.2017, 00:27 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, хотя бы так.
Огромное спасибо.
 
Ответить
СообщениеPelena, хотя бы так.
Огромное спасибо.

Автор - cerber412
Дата добавления - 01.03.2017 в 00:27
_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"))))

Не оптимизировал :D
К сообщению приложен файл: 5675675_1.xlsb (36.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
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"))))

Не оптимизировал :D

Автор - _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)
К сообщению приложен файл: 0016199.xlsb (31.8 Kb)


Ю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
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!