我正在尝试应用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的内容很庞大,因此手动完成是不可行的:(
谢谢,
答案 0 :(得分:1)
如果第一列始终是数字且始终有3个零,则只需除以1000并进行比较。
如果没有,则转换为字符串并输入第一个(长度为-3)字符并与第二列的字符串结果进行比较
答案 1 :(得分: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
在宏之前
宏观后