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