首页 > 解决方案 > VBA识别列中的重复值并选择行中的值

问题描述

我的电子表格中有两列。如果 A 列中的值重复,那么我想在 B 列中为这两个值获取相应的值并进行比较。如果有差异,请在 C 栏中填写“是”。

例如,代码 123456 在 A 列中出现了两次,并且存在差异,所以我必须在 C 列中写“是”。另一方面,999999 出现了两次,但没有区别,所以我必须写“否”。

Item_code   sale_price      Difference
123456   $        123.56    Yes
999999   $    1,542.00      No
598745   $    8,455.00      NA
123456   $        130.99    Yes
546892   $        562.00    NA
999999   $    1,542.00      No

在代码下方给出,不确定为什么它没有识别下一次出现的相同值并从 B 列获取相对值。它只是让我第一次出现。

Sub compare_dollars_Click()

item_row = Worksheets("Sheet1").Range("C" & Rows.Count).End(xlUp).Row

For item_counter = 2 To item_row

      get_input = Worksheets("Sheet1").Range("C" & item_counter).Value

If WorksheetFunction.CountIf(Range("C:C"), get_input) > 1 Then

                var1 = Range("B" & item_counter)
                MsgBox ("Sale Price" & "   " & var1 & "  " & item_counter)
End If

check_threshold (get_input)

Next item_counter

End Sub


Sub check_threshold(get_input)

Set repeat_cell_address = Worksheets("Sheet1").Range("C:C").Find(get_input, lookat:=xlPart)

newrow = repeat_cell_address.Row

                MsgBox (newrow)
                var2 = Range("B" & newrow)
                MsgBox ("Second occurrence of item code" & "   " & var2 & "  " & newrow)

End Sub

标签: excelvba

解决方案


如果您只是检查一个项目代码是否有多个不同的价格,那么应该这样做。

在 C2 中并复制下来:

=IF(COUNTIF($A$2:$A$7,A2)=1,"NA",IF(COUNTIFS($A$2:$A$7,A2,$B$2:$B$7,B2)=COUNTIF($A$2:$A$7,A2),"No","Yes"))

在此处输入图像描述


推荐阅读