• ベストアンサー

数式を教えてください

エクセルに詳しい方教えてください。 ネットや本を検索しましたが全くわからずお手上げです、助けてください。 ------------- 条件①頭12桁(ハイフン含む)が同一で下四桁が一番大きい番号を残して残りは削除。 条件②頭12桁(ハイフン含む)が複数ない場合はそのまま残す。 ------------- 上記条件を満たす取引番号のみ残す方法をご教授いただけますでしょうか。添付致します、よろしくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • NuboChan
  • ベストアンサー率47% (785/1650)
回答No.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)
回答No.2

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)
回答No.1

昇順にソートしたのち,左から12文字が一つ下の行の12文字と同じであれば行削除,そうでなければ残す,というのを繰り返せばよい。

関連するQ&A