在 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", ""),"")
但是,当我这样做时,公式无法正常工作 - 它不会用“错误”标记问题行。
将表列名称用作索引数组中的范围(而不是使用显式单元格引用)的正确方法是什么?
我只需要添加
[#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", "")