如何在Sheet1中正确引用Sheet2单元格实现指定公式计算?
解决Sheet1引用Sheet2数据的公式修改问题
我来帮你拆解并修正这个公式——问题出在你需要把所有指向Sheet2的单元格引用都明确标注工作表,尤其是INDIRECT生成的地址字符串里也要加上Sheet2!前缀,不然Excel会默认引用当前Sheet1的数据。
修正后的完整公式(适配你的分隔符)
=((COUNTIF(INDIRECT("Sheet2!"&ADDRESS(ROW(Sheet2!J4);COLUMN(Sheet2!J4))&":J"&MIN(IF(Sheet2!A4:A107="";ROW(Sheet2!A4:A107)))); "<>""")-1)/((COUNTIF(INDIRECT("Sheet2!"&ADDRESS(ROW(Sheet2!J4);COLUMN(Sheet2!J4))&":J"&MIN(IF(Sheet2!A4:A107="";ROW(Sheet2!A4:A107)))); "<>0")-1)
关键修改点说明
- 所有单元格引用前都加上
Sheet2!:比如J4→Sheet2!J4,A4:A107→Sheet2!A4:A107,确保Excel知道要从Sheet2取数。 INDIRECT的地址字符串开头添加"Sheet2!":因为ADDRESS函数生成的是纯单元格地址(比如$J$4),必须加上工作表前缀才能让INDIRECT定位到Sheet2的范围,否则会默认在Sheet1里找这个范围。- 保留原公式的数组运算逻辑:
MIN(IF(Sheet2!A4:A107="";ROW(...)))是数组计算,如果你用的是Excel 2019及更早版本,输入公式后需要按Ctrl+Shift+Enter完成数组确认;新版Excel(365/2021)支持动态数组,直接回车即可。
验证小技巧
你可以先单独测试MIN(IF(Sheet2!A4:A107="";ROW(Sheet2!A4:A107)))这部分,确认它能返回Sheet2中A列第一个空行的行号,再把整个公式组合起来,这样更容易排查问题。
内容的提问来源于stack exchange,提问作者Soru Soravic
相关产品推荐
相关产品推荐

