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

Вход

Регистрация

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

 

= Мир MS Excel/Подсчёт строк в массиве с момента посл. появления значения - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Подсчёт строк в массиве с момента посл. появления значения (Формулы/Formulas)
Подсчёт строк в массиве с момента посл. появления значения
daledale Дата: Пятница, 01.02.2019, 20:26 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброго всем Гуру в очередной раз. Новая задачка, так сказать, с вашего разрешения).
В общем есть массив, состоящий только из 0 и 1.
Нужно создать новый массив, где в качестве значений, дб вертикальные расстояния между значениями "1" в предыдущем массиве. Т.е. условно сколько прошло строк с момента последнего появления "1". При этом, как только появляется "1", счётчик должен сбрасываться и по-новой. Надеюсь понятно объяснил. Во вложении пример. Да, в самых верхних значениях, где "1" ещё не было - не критично чтобы что-то было, я заполнил нулями.
Снова огромное заранее спасибо откликнувшимся.
К сообщению приложен файл: sum_interv.xlsx(8.3 Kb)


Сообщение отредактировал daledale - Пятница, 01.02.2019, 21:49
 
Ответить
СообщениеДоброго всем Гуру в очередной раз. Новая задачка, так сказать, с вашего разрешения).
В общем есть массив, состоящий только из 0 и 1.
Нужно создать новый массив, где в качестве значений, дб вертикальные расстояния между значениями "1" в предыдущем массиве. Т.е. условно сколько прошло строк с момента последнего появления "1". При этом, как только появляется "1", счётчик должен сбрасываться и по-новой. Надеюсь понятно объяснил. Во вложении пример. Да, в самых верхних значениях, где "1" ещё не было - не критично чтобы что-то было, я заполнил нулями.
Снова огромное заранее спасибо откликнувшимся.

Автор - daledale
Дата добавления - 01.02.2019 в 20:26
bmv98rus Дата: Пятница, 01.02.2019, 20:54 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1581
Репутация: 259 ±
Замечаний: 0% ±

Excel 2013/2016
Попробуйте так
Код
=IF(A2<>1;IFERROR(ROWS(INDEX(A:A;LOOKUP(2;1/(A$1:A1=1);ROW(A$1:A1))):A1);0);0)
 
Ответить
СообщениеПопробуйте так
Код
=IF(A2<>1;IFERROR(ROWS(INDEX(A:A;LOOKUP(2;1/(A$1:A1=1);ROW(A$1:A1))):A1);0);0)

Автор - bmv98rus
Дата добавления - 01.02.2019 в 20:54
_Boroda_ Дата: Пятница, 01.02.2019, 21:12 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 14125
Репутация: 5696 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Еще вариант
Код
=НЕ(A2)*(1+K1)*(СУММ(A$2:A2)>0)

Новая задачка,
А у Вас и в старой еще ответ появился, видели?
К сообщению приложен файл: sum_interv_1.xlsx(9.7 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕще вариант
Код
=НЕ(A2)*(1+K1)*(СУММ(A$2:A2)>0)

Новая задачка,
А у Вас и в старой еще ответ появился, видели?

Автор - _Boroda_
Дата добавления - 01.02.2019 в 21:12
daledale Дата: Пятница, 01.02.2019, 21:45 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Попробуйте так

=ЕСЛИ(A2<>1;ЕСЛИОШИБКА(ЧСТРОК(ИНДЕКС(A:A;ПРОСМОТР(2;1/(A$1:A1=1);СТРОКА(A$1:A1))):A1);0);0)


Еще вариант

=НЕ(A2)*(1+K1)*(СУММ(A$2:A2)>0)

Друзья, оба варианта работают. И в первом приближении работают отлично. Проверил. Большущее Вам спасибо!

А у Вас и в старой еще ответ появился, видели?

Да, сходил посмотрел. Спасибо большое, но там решил оставить первый вариант. Большое спасибо!
 
Ответить
Сообщение
Попробуйте так

=ЕСЛИ(A2<>1;ЕСЛИОШИБКА(ЧСТРОК(ИНДЕКС(A:A;ПРОСМОТР(2;1/(A$1:A1=1);СТРОКА(A$1:A1))):A1);0);0)


Еще вариант

=НЕ(A2)*(1+K1)*(СУММ(A$2:A2)>0)

Друзья, оба варианта работают. И в первом приближении работают отлично. Проверил. Большущее Вам спасибо!

А у Вас и в старой еще ответ появился, видели?

Да, сходил посмотрел. Спасибо большое, но там решил оставить первый вариант. Большое спасибо!

Автор - daledale
Дата добавления - 01.02.2019 в 21:45
bmv98rus Дата: Пятница, 01.02.2019, 22:04 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1581
Репутация: 259 ±
Замечаний: 0% ±

Excel 2013/2016
_Boroda_, Александр, что-то я увлекся формулами не базирующихся на результатах предыдущих вычислений :-(.
daledale, вариант #3 и короче и легче по вычислениям.
 
Ответить
Сообщение_Boroda_, Александр, что-то я увлекся формулами не базирующихся на результатах предыдущих вычислений :-(.
daledale, вариант #3 и короче и легче по вычислениям.

Автор - bmv98rus
Дата добавления - 01.02.2019 в 22:04
Светлый Дата: Воскресенье, 03.02.2019, 22:20 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 939
Репутация: 230 ±
Замечаний: 0% ±

Excel 2010
в самых верхних значениях, где "1" ещё не было - не критично чтобы что-то было
Код
=ЕСЛИ(A2;;ЕСЛИ(G1="";"";G1+1))
или даже:
Код
=ЕСЛИ(A2;;G1+1)


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
в самых верхних значениях, где "1" ещё не было - не критично чтобы что-то было
Код
=ЕСЛИ(A2;;ЕСЛИ(G1="";"";G1+1))
или даже:
Код
=ЕСЛИ(A2;;G1+1)

Автор - Светлый
Дата добавления - 03.02.2019 в 22:20
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Подсчёт строк в массиве с момента посл. появления значения (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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