- ベストアンサー
数式を教えてください
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
横から失礼します。 興味本位でf272さんのアドバイスを受けて スレ主さんは、VBAの回答を求めているかは判りませんが 途中までですが以下の仮のVBAを考えました。 中途半端なコードなので完成に程遠いのですが 修正できればお願いします。 テストの為 ターゲットをA列をコピーしたB列としています。 Option Explicit Sub test() Columns("B").Clear Columns("A").Copy Columns("B").PasteSpecial (xlPasteAll) Application.CutCopyMode = False Range("B:B").Sort key1:=Range("B1"), order1:=xlDescending Dim i As Long ' For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row If Left(Cells(i, "B"), 6) = Left(Cells(i, "B").Offset(1, 0), 6) Then Cells(i, "B").Offset(1, 0).Select Selection.Delete Shift:=xlUp Else End If Next End Sub
その他の回答 (2)
- M_Sato
- ベストアンサー率54% (550/1003)
1)データを昇順にソートします。 2)B2のセルに以下の数式を入力します。 =IF(LEFT(A2,12)<>LEFT(A3,12),1,0) 3)そのセルを下に最後までコピーします。 (これによってB列に、次の行の頭12桁が同じものは0、同じでないものは1が表示されます) 4)フィルター機能でB列の値が1のセルだけ表示させます。 5)表示されたセル全体をコピーして、別のシートに貼り付ければ完成です。
- f272
- ベストアンサー率46% (8470/18134)
昇順にソートしたのち,左から12文字が一つ下の行の12文字と同じであれば行削除,そうでなければ残す,というのを繰り返せばよい。