首页 > 解决方案 > 您如何在匹配函数中引用单元格上方的所有单元格?

问题描述

这是我正在尝试做的事情:我在 Google 表格中有一个课程列表,每天将通过将它们粘贴到当前列表的末尾来添加这些项目。然后我想检查之前是否已经将课程添加到列表中。如果是这种情况,某个列的值将获得该课程第一次出现的值。所以我将使用 =INDEX(MATCH... 并且匹配部分中的范围将是选中的单元格上方列中的所有单元格。如果您向下拖动或复制公式,公式的 MATCH 部分很明显:

= MATCH(A2; A$1:A2; 0)

但是我正在尝试其他方法来实现这一点,即

MATCH(A2; "A$1:A"&ROW()-1; 0)

(我也试过这个不带引号的)和

MATCH(A2; (ADDRESS(1;1;2)&":"&ADDRESS(ROW()-1;1; 4)); 0) 

这两个都不行。我不知道为什么。(顺便说一句,分号在我住的地方没问题)。我到处都得到#N/A,并且在匹配评估中找不到该值的消息。

关于我做错了什么有什么想法吗?另外:如果我能让这个工作,那么一直向下复制简单公式有什么优点或缺点吗?非常感谢您提前。

标签: google-sheetsgoogle-sheets-formula

解决方案


这是一种 ArrayFormula 方法,因此您只需要一个公式

=ArrayFormula(IFNA(IF(MATCH(A2:A,A2:A,0)<>ROW(A2:A)-ROW()+1,A2:A,"N/A")))

推荐阅读