Использовать имена столбцов таблицы в качестве диапазона в массиве индекса?

Использовать имена столбцов таблицы в качестве диапазона в массиве индекса?

В таблице Excel 2016:

У меня есть формула, которую я использую для проверки того, имеют ли родительские записи правильные значения «Использовать с» (если дочерняя запись имеет значение «Использовать с», то и ее родительские записи должны иметь его). Дополнительная информацияздесь.

Столбец B =

IFERROR(IF(SUMPRODUCT(COUNTIF(INDEX( C:E, [@[Parent - RowNum]],0),Table1[@[Use With 1]:[Use With 3]]))<>COUNTA(Table1[@[Use With 1]:[Use With 3]]), "error", ""),"")

введите описание изображения здесь


Например, если бы я удалил значение в ячейке C2, формула успешно отметила бы его как вызывающее ошибку:

введите описание изображения здесь


Вопрос:

Я пытаюсь преобразовать всеявные ссылки на ячейки-к-структурированные ссылки(иначе говоря, имена столбцов таблицы). Я хочу сделать это, чтобы избежать некоторых проблем, которые у меня возникали при добавлении/удалении столбцов в электронной таблице (и потому что я предполагаю, что это лучшая практика/более чистый метод).

Я пробовал заменить C:Eна Table1[[Use With 1]:[Use With 3]].

=IFERROR(IF(SUMPRODUCT(COUNTIF(INDEX( Table1[[Use With 1]:[Use With 3]], [@[Parent - RowNum]],0),Table1[@[Use With 1]:[Use With 3]]))<>COUNTA(Table1[@[Use With 1]:[Use With 3]]), "error", ""),"")

Однако когда я это делаю, формула работает неправильно — она не помечает проблемные строки как «ошибку».

введите описание изображения здесь


Как правильно использовать имена столбцов таблицы в качестве диапазона в массиве индексов (вместо использования явных ссылок на ячейки)?

решение1

Мне просто нужно было добавить [#All],индексный массив.

Table1[[#All],[Use With 1]:[Use With 3]]

Полная формула:

=IF(SUMPRODUCT(COUNTIF(INDEX( Table1[[#All],[Use With 1]:[Use With 3]], [@[Parent - RowNum]],0),Table1[@[Use With 1]:[Use With 3]]))<>COUNTA(Table1[@[Use With 1]:[Use With 3]]), "error", "")

Связанный контент