我正在尝试查询整个页面以查找几个 0 的位置。我知道在我搜索的范围内总有一个 0,但每个范围内的 0 都不同。
在下面的例子中: - E1 包含本例中每条记录的列 J B3 是本例中的起始行 3 C3 是本例中的结束行 22 我已尝试=MATCH(0,"'All Weeks'!"&E1&B3&":"&E1&C3)
返回 #VALUE 我已经确定是“:”,如何让 MATCH 接受公式中的“:”?
我必须这样做 1000 次(20 列 * 50 组 20 行),并且希望计算机能够智能地完成它。
答案1
您的困难不在于冒号,或者更确切地说,如果您执行以下操作,冒号将不会带来任何困难:真正的困难是您不能简单地创建字符串并让 Excel 将其视为引用。您还必须使用函数来INDRECT()
告诉 Excel 它不是它创建的普通文本,而是应该将其视为地址引用。
使用:
=INDIRECT("'All Weeks'!"&E1&B3&":"&E1&C3)
它将按预期工作。
但是,一旦将其放入MATCH()
函数中,您可能会收到 #N/A!错误。这是因为您的公式未选择匹配类型(范围后的第三个参数,可选)。因此,Excel 假设您想要的匹配是less than
查找值。如果范围内没有带负数的单元格,您将收到错误。除此之外,由于您想要精确匹配,因此您需要指定这一点,以便在给出结果时知道您得到的是精确匹配:结果是列表中将构建您想要的单元格地址的位置,而不是实际查找的值,因此您可能不会注意到任何您认为错误的匹配,至少乍一看不会。
因此包括第三个参数:
=MATCH(0,INDIRECT("'All Weeks'!"&E1&B3&":"&E1&C3),0)
让它唱歌。
(由于您想找到该单元格并将其锁定,因此执行此查找的通常的“更好”方法并不适用,因为它们会告诉您它存在,而不是它在哪里。)
这就是想法。冒号只是一个问题,因为该方法需要多一个元素,而不是因为冒号本身的任何内在事实。并添加第三个参数以确保您获得正确的答案。