- ベストアンサー
エクセルで同じ数値の行を削除
エクセルで以下のような1000行位のデータがあります。 A列 B列 大阪 1,001 東京 1,200 高知 1,300 大阪 1,200 なら 1,000 神戸 1,001 これらからB列が同じ数値の行を削除し、以下のように するにはどうしたら良いでしょうか? よろしくお願いします。 A列 B列 東京 1,200 高知 1,300 大阪 1,200 なら 1,000
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
1.C1に=COUNTIF(B:B,B1)と入力します。 2.式を下方向にコピー。 3.1行目に行を挿入し、見出しを付けます。 4.オートフィルターで抽出条件としてC列で1と等しくないを選択。 5.データを選択し、右クリックで行の削除。 6.C列を削除。 これでどうでしょうか。 念の為、バックアップを取ってから行ってください。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
質問が少数の実例だけ挙げて、一般ルールを文章で説明しないから、質問内容が不明確だと思う。#1のご指摘もそうですが、 質問では、一般ルールを文章での説明も添えること。! ーー 例えば、後の方で「大阪」が出てくるので、先立つ大阪は捨て後の方を残す。という風にもとれる。 例データ A列 B列 D列 大阪 1,001 東京 1,200 1 高知 1,300 2 大阪 1,200 3 なら 1,000 神戸 1,001 4 なら 1,300 5 D列の式は=IF(ISERROR(MATCH(A2,A3:$A101,0)),MAX($D$1:D1)+1,"") と入れて下方向に式を複写 ーー 別シートSheet2において A列A2に =INDEX(Sheet1!$A$1:$B$100,MATCH(ROW()-1,Sheet1!$D$1:$D$100,0),1) B列B2に =INDEX(Sheet1!$A$1:$B$100,MATCH(ROW()-1,Sheet1!$D$1:$D$100,0),2) と入れて下方向に式を複写。 結果 A列 B列 東京 1200 高知 1300 大阪 1200 神戸 1001 なら 1300 以上「imogasi方式」(Googleで照会のこと) ーー 質問文不明瞭で、質問の意味を取り違えているかもしれないので、 #N/Aをださない式は略。上記WEB参照のこと。
お礼
おかげさまで、出来ました!!ありがとうございました。
- Rin-u_u
- ベストアンサー率35% (6/17)
"Dictionary"を使った例を最近勉強したので・・・ 外してたらごめんなさい データのバックアップを取ってから試してください 表がSheet1にあるとして、Sheet2に書き出します。 Option Explicit Sub test() Dim myDic As Object Dim myR As Range Dim r As Range With Sheets("Sheet1") Set myR = .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp)) End With Set myDic = CreateObject("Scripting.Dictionary") For Each r In myR If Not IsEmpty(r.Value) Then If Not myDic.Exists(r.Value) Then myDic(r.Value) = r.Offset(, 1).Value End If End If Next With Sheets("Sheet2") .Cells.ClearContents .Range("A1").Resize(, 2).Value = Sheets("Sheet1").Range("A1").Resize(, 2).Value With .Cells(2, 1).Resize(myDic.Count) .Value = Application.Transpose(myDic.Keys) .Offset(, 1).Value = Application.Transpose(myDic.Items) End With End With End Sub
お礼
おかげさまで、出来ました!!ありがとうございました。
- phoenix343
- ベストアンサー率15% (296/1946)
? 東京 1,200 大阪 1,200 も同じ数値ですよね? 他に条件がなかったりしませんか?
お礼
おかげさまで、出来ました!!ありがとうございました。
お礼
おかげさまで、出来ました!!ありがとうございました。