Google Sheets如何在其他函数中调用MATCH函数返回的行号
解决方案
方案1:使用INDIRECT函数实现动态行号拼接(满足你传递行号的需求)
你之前写法的问题是直接拼接的字符串不会被Google Sheets识别为合法的单元格区域,需要用INDIRECT()函数把文本格式的地址转换为实际引用。
如果你的B1、B2单元格已经提前算好了起始行、结束行,直接用下面的写法:
=COUNTIF(INDIRECT("Sheet2!$G$"&B1&":$G$"&B2), D3)
如果不想额外占用B1、B2单元格,也可以把MATCH直接嵌套进去:
=COUNTIF(INDIRECT("Sheet2!$G$"&(MATCH(A1,RefsSent!$J$2:$J,0)+1)&":$G$"&(MATCH(A2,RefsSent!$J$2:$J,0)+1)), D3)
注意事项
- 建议给MATCH加错误处理,避免输入的日期不存在时返回报错:
=IFERROR(MATCH(A1,RefsSent!$J$2:$J,0)+1,) - INDIRECT是易失性函数,数据量很大的话可能会拖慢表格运算速度。
方案2:改用COUNTIFS直接按日期筛选(更稳妥的推荐方案)
如果你不需要单独获取行号做其他用途,直接用COUNTIFS()多条件匹配更稳定,不会因为行号对应关系出错导致统计错误,写法如下(假设RefsSent表和Sheet2表的行是一一对应的,即第N行的日期对应Sheet2第N行的G列数据):
=COUNTIFS(Sheet2!$G:$G, D3, RefsSent!$J:$J, ">="&A1, RefsSent!$J:$J, "<="&A2)
这个写法不需要处理行号匹配,日期不存在时也会直接返回0,容错性更高。
内容的提问来源于stack exchange,提问作者justryingouthere
相关产品推荐
相关产品推荐

