Формула массива для поиска последнего соответствующего условия

Я подумал, что было бы полезно проиллюстрировать ответ Win32 на картинке.

Обертка, сгенерированная bind, гарантирует, что ваша функция вызывается с заданным контекстом независимо от того, что . Такая оболочка всегда будет игнорировать свой собственный контекст.

Учитывая цепочку оберток, любой контекст, кроме самого внутреннего, теряется. Поэтому невозможно изменить контекст после его установки с помощью bind.

Chained bind calls [/g2]

1
задан DMGregory 17 January 2019 в 16:16
поделиться

1 ответ

Это выполнимо, но есть хорошая идея использовать именованный диапазон для инкапсуляции строгих столбцов свойств таблицы данных.

=MAX(IF(
        INDEX(
              INDEX(PropertyData, 1 + ROW()-ROW($I$15), 0),
              1,
              N(IF({1}, Criteria[Property Index]))
        ) = Criteria[Value],
        ROW(Criteria[Value])-ROW(Criteria[#Headers]),
        0
))

PropertyData - первая ячейка в столбце свойства 1 до конца через Именованный диапазон .

PropertyData определяется как:

=INDEX(Data, 1, COLUMN(Data[Property 1])-COLUMN(Data) + 1):INDEX(Data, ROWS(Data), COLUMNS(Data))

Одно жестко закодированное значение - это ячейка $ I $ 15, в которой лежит первая формула. Я поставил таблицы и формулы не синхронизированными, чтобы показать, что они хорошо справляются со всеми.

enter image description here

0
ответ дан MacroMarc 17 January 2019 в 16:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: