Страницы: 1
RSS
Как найти разницу значений между текущей и предыдущей строкой выбранных строк, Строки отбираются и группируются по критериям
 
В таблице есть столбец со значениями и столбец Критерий, нужно получить разницу между текущим и предыдущим значением, но только выбранных строк с одинаковым критерием. Т.е. не получится текущее-1, нужно: "текущее" - "максимальное число из предыдущих удовлетворяющее критериям". Пример таблицы во вложении.
Должно быть простое решение, но что-то я запутался ))
 
И вам здравствовать!
Попробуйте формулу массива в D2 и тянуть вниз.
Код
{=ЕСЛИ(СЧЁТЕСЛИ($B$1:B1;B2);C2-ИНДЕКС($C$1:C1;НАИБОЛЬШИЙ(($B$1:B1=B2)*СТРОКА($B$1:B1);1));C2)}

или без массивного ввода так

Код
=ЕСЛИ(СЧЁТЕСЛИ($B$1:B1;B2);C2-ИНДЕКС($C$1:C1;СУММПРОИЗВ(НАИБОЛЬШИЙ(($B$1:B1=B2)*СТРОКА($B$1:B1);1)));C2)
Изменено: gling - 17.01.2023 23:13:20
 
Спасибо, формула рабочая, но не подходит, т.к. у меня в рабочем документе 5 критериев, в примере указал 1.
Извиняюсь, что сразу не прислал документ с 5ю критериями, рассчитывал на более легкое решение, которое не заметил.
В идеале: ТекущееЗначение-ПредыдущееЗначение Если Критерий1 И Критерий2 И Критерий3 И Критерий4 И Критерий5 соответствуют.
Поэтому нужна функция СУММЕСЛИМН или другой упрощенный вариант.
Во вложенном документе моя формула, но в ней в поле № числа ввожу вручную, которые удовлетворяют все критерии.
Смысл, если в столбце Критерий 1 Значения между собой одинаковые (например К1-1), и в столбце Критерий 2 критерии между собой одинаковые (например К2-1) то в № можно плюсовать 1,2,3...n.
№   К1      К2      Зн
1     К1-1  К2-1    4   (К1 и К2 начало)
2     К1-1  К2-1    7   (К1 и К2 - 2 совпадения)
1     К1-1  К2-2    6   (К1 и К2 начало)
2     К1-1  К2-2    9   (К1 и К2 - 2 совпадения)
1     К1-1  К2-3    15 (К1 и К2 - не совпадают, новый счет)
3     К1-1  К2-1    16   (К1 и К2 - 3 совпадение)
Похоже в номер можно добавить Формулу СчетЕслиМН, но она посчитает все значения
 
Цитата
написал:
Поэтому нужна функция СУММЕСЛИМН
А что же самостоятельно то не пробуете? Увеличивайте условия, в чём проблема?
Код
=ЕСЛИ(СЧЁТЕСЛИМН($B$1:B1;B2;$C$1:C1;C2;$D$1:D1;D2;$E$1:E1;E2;$F$1:F1;F2);G2-ИНДЕКС($G$1:G1;СУММПРОИЗВ(НАИБОЛЬШИЙ(($B$1:B1=B2)*($C$1:C1=C2)*($D$1:D1=D2)*($E$1:E1=E2)*($F$1:F1=F2)*СТРОКА($B$1:B1);1)));G2)
 
Цитата
написал:
=ЕСЛИ(СЧЁТЕСЛИМН($B$1:B1;B2;$C$1:C1;C2;$D$1:D1;D2;$E$1:E1;E2;$F$1:F1;F2);G2-ИНДЕКС($G$1:G1;СУММПРОИЗВ(НАИБОЛЬШИЙ(($B$1:B1=B2)*($C$1:C1=C2)*($D$1:D1=D2)*($E$1:E1=E2)*($F$1:F1=F2)*СТРОКА($B$1:B1);1)));G2)
Это именно то, что нужно, большое спасибо!
Мне нужен был взгляд со стороны, например прием $B$1:B1 я ранее не использовал, возьму себе на вооружение. И с индекс редко работаю.
Страницы: 1
Наверх