0

我正在尝试应用 Excel 公式对 excel 列进行排序,但无法想出它。

excel 条目如下所示:

在此处输入图像描述

如您所见,在第一列中,记录的末尾有 000。

1)我需要忽略A列的最后一个000,比较A列和B列的内容。

   a) If it matches, then remove the 000 from the Column A.

   b) If it does not matches, then delete the entire row OR make the content for both the column as N/A.

请帮我解决这个问题,这个excel的内容很大,因此手动操作是不可行的:(

谢谢,

4

2 回答 2

1

如果第一列总是数字并且总是有 3 个零,那么只需除以 1000 并进行比较。

如果不是,则转换为字符串并将第一个(长度-3)字符减去并与第二列的字符串结果进行比较

于 2013-02-27T14:35:31.490 回答
1

如果您希望使用 VBA 执行此操作,可以将以下宏添加到您的工作簿中:

编辑

您的评论表明您正在寻找前导零和尾随零,而不仅仅是像原始问题所暗示的那样尾随。如果是这种情况,您可以通过一个简单的条件语句来完成此操作,该语句检查 3 个零的位置(如果有的话)。

Format如果可能的话,单元格Number type删除前导零会简单得多。如果这是不可能的,那么这是实现这一目标的宏:

Public Sub CompareValues()
    Dim rowCount As Integer, currentRow As Integer
    Dim firstCellValue As String
    Dim secondValValue As String
    rowCount = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
    Dim test As String
    For currentRow = rowCount To 1 Step -1

        'remove three leading or trailing 0's from value
        test = Left(Cells(currentRow, 1).Value, 3)
        If Left(Cells(currentRow, 1).Value, 3) = "000" Then
            firstCellValue = Right(Cells(currentRow, 1).Value, Len(Cells(currentRow, 1).Value) - 3)
        Else
            firstCellValue = Left(Cells(currentRow, 1).Value, Len(Cells(currentRow, 1).Value) - 3)
        End If

        secondValValue = Cells(currentRow, 2).Value

        If Not IsEmpty(firstCellValue) And Not firstCellValue = "" Then
            If firstCellValue = secondValValue Then
                Cells(currentRow, 1).Value = secondValValue
            Else
                Cells(currentRow, 1).EntireRow.Delete
            End If
        End If
    Next
End Sub

宏之前

在此处输入图像描述

宏之后

在此处输入图像描述

于 2013-02-27T16:00:14.697 回答