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