替换INDIRECT与ADDRESS易失性函数:用INDEX统计表格行非空单元格
用INDEX优化表格行非空单元格统计
替代原公式的INDEX方案
原公式依赖易失性函数INDIRECT,会拖慢工作表计算效率,以下是用INDEX实现的非易失性高效方案:
=COUNTA(INDEX(tblShiftTable, ROW() - ROW(tblShiftTable[#Headers]), 0))
公式解析
ROW() - ROW(tblShiftTable[#Headers]):计算当前行在表格数据区域的相对行号(表头行不算入数据行,比如表头在第2行,当前数据行是第3行,结果为1,对应表格的第一行数据)INDEX(tblShiftTable, 相对行号, 0):INDEX的第三个参数设为0时,会直接返回表格中指定行的所有数据列(非易失性,计算性能远优于INDIRECT)COUNTA:统计该行内所有非空单元格的数量
简化补充(结构化引用等效写法)
如果不需要严格使用INDEX,直接用表格的结构化引用更简洁,效果完全一致:
=COUNTA(tblShiftTable[@])
tblShiftTable[@]代表当前行的所有数据列,本质上和INDEX方案的底层逻辑相同,同样是非易失性的。
内容的提问来源于stack exchange,提问作者mpolenis
相关产品推荐
相关产品推荐

