如何比较列中的数字

如何比较列中的数字

我在 libreoffice 中有类似数据

ColumnA ColumnB
504231  504109
504109  504201
504201  
504299

像这么多数据然后我想要像这样的输出

ColumnA ColumnB
504231  
504109  504109
504201  504201
504299 

我尝试过=IF(COUNTIF($B$1:$B$3;A1)>0;A1;"")这个公式在比较字符串时有效。我尝试过类似方法,但没有得到结果

如何实现这个输出请告诉我

答案1

这个 VBa 可以实现您想要的功能......

Sub Button1_Click()

Dim numberOfRows As Integer
numberOfRows = 10            'Update this number from 10 to the number of rows you are using

   For rowNumberB = 1 To numberOfRows
        Dim cellToCheck As String
        valueToCheck = Range("B" & rowNumberB).Value ' get the value from B column
        For rowNumberA = 1 To numberOfRows
            If Range("A" & rowNumberA).Value = valueToCheck Then
                Range("C" & rowNumberA).Value = valueToCheck 'assign the new value to col C on the correct row (has to be on C otherwise we could over write existing values in B
                Range("B" & rowNumberB).Value = "" 'delete the original value from col B
            End If
        Next
    Next

    'Now we have to move everything from col C to B
    For rowNumberC = 1 To numberOfRows
        Range("B" & rowNumberC).Value = Range("C" & rowNumberC).Value ' copy from C to B
        Range("C" & rowNumberC).Value = "" ' Delete the value from C
    Next

End Sub

您没有提到如果 B 列中的项目位于 A 列中的值之前或之后会发生什么,也没有提到如何处理任一列中的重复项。好吧,上面的代码将解决所有这些问题。请参阅下面的屏幕截图。

在此处输入图片描述

在此处输入图片描述

答案2

提问者自己在他的下一个问题

=IF(ISNA(VLOOKUP($A2,$B$2:$B$5,1,0)),"",VLOOKUP($A2,$B$2:$B$5,1,0))

相关内容