Excel 2016:如何用公式确定源位置跨工作表引用单元格?
解决Excel 2016中动态区域的COUNTA计算问题
- 你当前的公式失效原因是直接通过文本拼接生成单元格区域地址,Excel无法识别这种字符串形式的区域引用,必须借助能解析动态地址的函数实现。
- 推荐两种可行方案:
方案1:使用INDIRECT函数
将拼接好的区域地址字符串通过INDIRECT转换为Excel可识别的区域引用,公式如下:
=COUNTA(INDIRECT("'Sheet B'!B"&MATCH(C7,'Sheet B'!$A:$A,0)&":B"&MATCH(C7,'Sheet B'!$A:$A,1)))
注意:INDIRECT属于易失性函数,在6万行的大数据量场景下,可能会影响表格计算速度。
方案2:使用INDEX函数(非易失性,更高效)
通过INDEX定位区域的首尾单元格,直接构建合法的区域引用,公式如下:
=COUNTA(INDEX('Sheet B'!B:B,MATCH(C7,'Sheet B'!$A:$A,0)):INDEX('Sheet B'!B:B,MATCH(C7,'Sheet B'!$A:$A,1)))
该方案不会因数据频繁更新导致卡顿,更适配你的大表格场景。
验证说明
两种方案都能精准定位到你用MATCH函数找到的首末行对应的Sheet B的B列区域,COUNTA会准确统计该区域内非空单元格的数量。
内容的提问来源于stack exchange,提问作者Billpo
相关产品推荐
相关产品推荐

