インデックス配列の範囲としてテーブル列名を使用しますか?

インデックス配列の範囲としてテーブル列名を使用しますか?

Excel 2016 テーブルの場合:

親レコードに適切な「Use With」値があるかどうかを確認するために使用する数式があります (子レコードに「Use With」値がある場合、その親にもその値が必要です)。詳細情報ここ

列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", "")

関連情報