使用表列名作为索引数组的范围?

使用表列名作为索引数组的范围?

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

相关内容