Excel2010です。
A行目 1 3 5 5 2 2 3
B行目 2 3 5 5 4 4
C行目 1 9 7 9 9
↓
A行目 1 3 5 2
B行目 2 3 4 5
C行目 1 7 9
というように、行ごとに重複の削除をしたいと思っています。
データタブに重複の削除があるのですが、列ごとにやるようなので、一度シート全体を
行と列を入れ替えて別シートにコピーして、
1列目全体を選択して、1列目で重複の削除を実行
2列目全体を選択して、2列目で重複の削除を実行
・・・
というやり方もあるのですが、今扱っているエクセルは197行197列あります。
列選択、重複の削除アイコンをクリックするのを197回繰り返すのは大変です。
自動化する方法はないものでしょうか?
No.1ベストアンサー
- 回答日時:
こんばんは!
A行目となっているのは1行目のことですよね?
↓の画像のような配置になっていて、行単位で判断して重複するものだけを削除!
という解釈での方法です。
VBAになってしまいますが・・・
一例です。
画面の左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub test() 'この行から
Dim i, j As Long
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row '1行目からA列の最終行まで
For j = Cells(i, Columns.Count).End(xlToLeft).Column To 1 Step -1 'i列の最終列からA列まで
If WorksheetFunction.CountIf(Range(Cells(i, 1), Cells(i, j)), Cells(i, j)) <> 1 Then
Cells(i, j).Delete (xlToLeft)
End If
Next j
Next i
End Sub 'この行まで
こんな感じで良かったのですかね?m(__)m
No.3
- 回答日時:
>列選択、重複の削除アイコンをクリックするのを197回繰り返すのは大変です。
という事で,それをマクロで自動化してみます。
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける
Sub Macro1()
Dim wo As Worksheet
Dim wt As Worksheet
Dim wr As Worksheet
Dim c As Long
Set wo = ActiveSheet
Set wt = Worksheets.Add
wo.Range("A1").CurrentRegion.Copy
wt.Range("A1").PasteSpecial Transpose:=True
For c = 1 To wt.Range("A1").CurrentRegion.Columns.Count
wt.Range("A1").CurrentRegion.Columns(c).RemoveDuplicates Columns:=1, Header:=xlNo
Next c
Set wr = Worksheets.Add
wt.Range("A1").CurrentRegion.Copy
wr.Range("A1").PasteSpecial Transpose:=True
End Sub
ファイルメニューから終了してエクセルに戻り,
元データのシートを開き
エクセルのオプションから開発タブを表示しておいて,マクロのボタンから今登録したMacro1を実行する。
#こんな方法もあります。
シート1のA1から元データがあるとして。
シート2のA1に
=IF(COUNTIF(Sheet1!$A1:A1,Sheet1!A1)=1,Sheet1!A1,NA())
と記入,シート1のデータのある範囲に満遍なくコピー貼り付ける
Ctrl+Gを押し,現れたダイアログでセル選択をクリック,現れたダイアログで数式にマークしてエラー値のみチェックを残してその他のチェックを外し,OKする
#N/Aのセルが飛び飛びで選択されるので,飛び飛びの選択状態を崩さないよう上手く1個の#N/Aのセルを右クリックして削除を選び,左に詰めてOKする。
No.2
- 回答日時:
あいにく Excel 2010 を持っていないので、Excel 2002 での方法になります。
添付図参照
Sheet1: オリジナル・データ
Sheet2!B1: =IF(ISERROR(SMALL(Sheet1!$A1:$G1,COLUMN(A1))),"",SMALL(Sheet1!$A1:$G1,COLUMN(A1)))
(A列は空白のまま)
Sheet3!A1: =IF(Sheet2!B1=Sheet2!A1,"",Sheet2!B1)
Sheet4!A1: =IF(ISERROR(SMALL(Sheet3!1:1,COLUMN(A1))),"",SMALL(Sheet3!1:1,COLUMN(A1)))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) Excel 指定した固有番号で、複数の行を削除する方法は? 2 2022/03/30 15:18
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Excel(エクセル) Excel vba 重複行削除 4 2022/06/02 06:52
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) ExcelVBAで配列2つを結合させて重複アドレスを削除したいです 3 2023/04/25 15:31
- Excel(エクセル) エクセルの複写について 4 2022/04/10 01:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ピボットテーブル→参照が正しく...
-
WEB上の表の列コピー選択方法は?
-
エクセルのリストから欠番を拾...
-
PDFからExcelに変換する時に「...
-
エクセルVBAで、行コピーを複数...
-
エクセル シートのコピーをリ...
-
【エクセル】行挿入で数式もい...
-
エクセルの関数の使い方 繰越...
-
一つのシートの中に複数のペー...
-
メモ帳からエクセルに貼り付け...
-
Excel 表から値をさがして隣の...
-
エクセルでページ番号をつける...
-
Excelでセル参照したとき、書式...
-
勤続年数の平均を求めたい時の関数
-
エクセルの色も=イコールでき...
-
【エクセル2002】 週番号から...
-
表のセル内の右側に余白?
-
至急です。パソコンのログイン...
-
エクセル・縦書き・取り消し線
-
エクセルでのマイナス計算がう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つのシートの中に複数のペー...
-
WEB上の表の列コピー選択方法は?
-
エクセルで作成した縦に長い表...
-
【エクセル】行挿入で数式もい...
-
オートフィルタのリストを順番...
-
メモ帳からエクセルに貼り付け...
-
エクセルのリストから欠番を拾...
-
Excel 表から値をさがして隣の...
-
ピボットテーブル→参照が正しく...
-
Excelピボットテーブルで 総計...
-
Excelの数式のコピーで列移動で...
-
エクセルVBAで、行コピーを複数...
-
エクセルの列幅
-
エクセルの関数の使い方 繰越...
-
Excelで検索結果をテキストボッ...
-
エクセルで各ページに同じ文書...
-
エクセル シートのコピーをリ...
-
VBA csvを100万行ずつ各...
-
地番を順に並べたい。
-
エクセルに詳しい方、助けてく...
おすすめ情報