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

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 に答える
1

最初の列が常に数値で、常にゼロが 3 つある場合は、単純に 1000 で除算して比較します。

そうでない場合は、文字列に変換し、最初の (長さ -3) 文字を部分文字列にして、2 列目の文字列結果と比較します。

于 2013-02-27T14:35:31.490 に答える