Я подумал, что было бы полезно проиллюстрировать ответ Win32 на картинке.
Обертка, сгенерированная bind
, гарантирует, что ваша функция вызывается с заданным контекстом независимо от того, что . Такая оболочка всегда будет игнорировать свой собственный контекст.
Учитывая цепочку оберток, любой контекст, кроме самого внутреннего, теряется. Поэтому невозможно изменить контекст после его установки с помощью bind
.
[/g2]
Это выполнимо, но есть хорошая идея использовать именованный диапазон для инкапсуляции строгих столбцов свойств таблицы данных.
=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, в которой лежит первая формула. Я поставил таблицы и формулы не синхронизированными, чтобы показать, что они хорошо справляются со всеми.