如何在不同列中按范围界定结果的列中找到重复的值?

如何在不同列中按范围界定结果的列中找到重复的值?
     A          B            C
1  RANGES     VALUES   FORMULA NEEDED  
2    1          x           yes
3    1          x           yes
4    2          x           no
5    3                      no
6    3          y           yes
7    3          y           yes
8    4          x           no
9    5          z           no
10   5          y           no

因此,我想识别 VALUES 中的重复项,并通过 RANGES 中的值来界定结果。我希望结果与 FORMULA NEEDED 列中的结果类似。

我需要的是 VALUES 列中的重复值。更具体地说,我需要查看我在 VALUES 列中找到的内容是否是重复项,使用(这很重要)RANGES 列中的重复项范围作为分隔符。我希望这有意义。

因此,如果: - x 在编号为 1 的行中重复,则为肯定。 - y 在编号为 3 的行中重复,即使其中包含空白值或附加值(例如 x),则仍为肯定。

这是我的失败的尝试:

=IF(AND(A2=A1,B2=B1),"yes","no")

答案1

您需要使用 VBA。

因此,您需要做的是将 A + B 列的值读入数组。
假设我们有一个大批命名为C,因此 C(1) 将是 A2 + B2 = "1x";C(2) 将是 A3 + B3 = "1x";C(3):A4 + B4 = "2x";等等。
您对此执行 for 循环以读入您必须 C(i) 的所有值。

有了这个之后,你只需谷歌一下,excel vba how to find duplicate values in an array
我相信会有很多解决方案。

得到这个之后,你可能会得到一个将值存储到另一个或同一个数组中的数组,例如布尔值(true/false)

因此,您只需对其运行另一个 for 循环,它看起来像这样:
for i = 1 to NumberOfRows if C(i) = true then Cells(i, "C").Value = "true" next i

当然还有更多可能的解决方案,但这就是我的做法。
如果您有疑问,请随时提问!

相关内容