特定の値に基づいて列からデータを転送します。

特定の値に基づいて列からデータを転送します。

Excel に数字の列があり、それを別の列の特定の値に基づいて分離する必要があります。

これまでは、コピーと削除という面倒な方法を使用してきましたが、それを実現する数式を記述できるようになりたいです。

別の列に値を配置する数式を記述できますが、元の列から値を削除することも必要です。

=IF(P625="OR",(I625),0)。

この数式の最後に、I625 から値を削除する何かを記述できますか?

答え1

次のようなデータがあります:

ここに画像の説明を入力してください

この短いマクロを実行します:

Sub Oranges()
    i = 1
    For Each r In Columns(2).SpecialCells(2)
        If r.Value = "OR" Then
            r.Offset(0, -1).Copy Cells(i, 3)
            r.Offset(0, -1).Clear
            i = i + 1
        End If
    Next r
End Sub

生成されます:

ここに画像の説明を入力してください

編集#1:

次のバージョンがお客様のニーズを満たす可能性があります:

Sub Oranges2()
    For Each r In Columns(2).SpecialCells(2)
        If r.Value = "OR" Then
            r.Offset(0, -1).Copy r.Offset(0, 1)
            r.Offset(0, -1).Clear
        Else
            r.Offset(0, 1) = 0
        End If
    Next r
End Sub

関連情報