名前と郵便番号を繋げて同一判別キー(G列)を作り、ソートをかけました。
■同一判定キー ■名前 ■フリガナ ■電話 ■郵便番号 ■住所
田中123-1234 田中 123-1234
田中123-1234 田中 0X0-1X34-1234 123-1234
田中123-1234 田中 タナカ 123-1234 新潟県
すると、同一人物のデータが何度も手入力されていて、それぞれの行で情報量がバラバラです。
単純に重複と扱って1行目以降を削除するわけにいきません。
そこで、同一判定キーを基に、空欄の部分は他の行にあるデータをコピーして1行にまとめたいです。
どう処理すれば可能でしょうか。
まとめたい情報列はH列~AD列まであります。
約3000行です。
■同一判定キー ■名前 ■フリガナ ■電話 ■郵便番号 ■住所
田中123-1234 田中 123-1234
田中123-1234 田中 0X0-1X34-1234 123-1234
田中123-1234 田中 タナカ 123-1234 新潟県
↓↓↓↓↓↓↓↓↓↓↓↓↓↓
■同一判別キー ■名前 ■フリガナ ■電話 ■郵便番号 ■住所
田中123-1234 田中 タナカ 0X0-1X34-1234 123-1234 新潟県
宜しくお願いします。
No.3ベストアンサー
- 回答日時:
こんばんは!
VBAになりますが、一例です。
↓の画像のように元データはSheet1にあり、Sheet2に表示するようにしてみました。
(質問の配置とは異なると思いますが、「同一判定キー」の列は不要です。
尚、Sheet3を作業用のSheetとして使用していますので、
Sheet3はまっさらな状態にしておいてください。
Alt+F11キー → メニュー → 挿入 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() 'この行から//
Dim i As Long, lastRow1 As Long, lastRow3 As Long
Dim wS2 As Worksheet, wS3 As Worksheet
Set wS2 = Worksheets("Sheet2")
Set wS3 = Worksheets("Sheet3")
Application.ScreenUpdating = False
With Worksheets("Sheet1")
lastRow1 = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS2.Range("A1"), unique:=True
For i = 2 To wS2.Cells(Rows.Count, "A").End(xlUp).Row
wS3.Cells.ClearContents
.Range("A1").AutoFilter field:=1, Criteria1:=wS2.Cells(i, "A")
Range(.Cells(2, "A"), .Cells(lastRow1, "E")).SpecialCells(xlCellTypeVisible).Copy wS3.Range("A1")
lastRow3 = wS3.Cells(Rows.Count, "A").End(xlUp).Row
Range(wS3.Cells(1, "A"), wS3.Cells(lastRow3, "E")).SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
Range(wS3.Cells(1, "B"), wS3.Cells(1, "E")).Copy wS2.Cells(i, "B")
Next i
.AutoFilterMode = False
wS3.Cells.Clear
wS2.Columns.AutoFit
End With
Application.ScreenUpdating = True
wS2.Activate
End Sub 'この行まで//
こんな感じではどうでしょうか?m(_ _)m
ご回答ありがとうございます。
"E"となっている部分を"AD"に変更し
同一判定キーの列をA列に移動して実行したところ
希望通りの結果が得られました。
非常に参考になりました。
ありがとうございます!!
No.2
- 回答日時:
数千人分のデータなので、何処まで役に立つか疑問だけど、
↓↓↓↓↓↓↓↓↓↓↓↓↓↓
の上にある一人分のデータである添付図上段を最下段のようにするのは簡単にできます。
[ジャンプ]コマンドで“空白セル”だけを選択した後、[削除]コマンドで“上方向にシフト”を実行するのです。
ただし、オートフィルタで抽出したばかりのデータではできないのが残念ではあります。
回答ありがとうございます。
この方法は存じておりますが、1人だいたい3行前後ある状態ですので、
1000人分と仮定した場合、H列~AD列の23列を編集してゆくとなると
少なく見積もっても1000人×23列分で2万3千回のセル選択と削除操作をする事になる為、
現実的ではないですね。
また、下に続く他の人の情報も一緒に上方向へシフトしてしまうのではないでしょうか。
No.1
- 回答日時:
》 名前と郵便番号を繋げて同一判別キー(G列)を作り、ソートをかけました
ということは、「約3000行」のレコードで、「名前」以外には「郵便番号」だけは“抜け”がない、ということですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- Excel(エクセル) エクセルの参照について教えてください 1 2022/12/08 16:06
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- その他(IT・Webサービス) メニューについて 3 2022/07/12 16:06
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
【至急】Excel 同一人物の情報を一行にまとめる(複数行)
Visual Basic(VBA)
-
EXCELで2列を参照し、重複するものを横に並べたい
Excel(エクセル)
-
エクセルで同じ名前の人が同じ列にくるように並べ替えたい
Excel(エクセル)
-
-
4
excelで複数行にまたがるデータを1行にまとめたい
Excel(エクセル)
-
5
excelで複数行を一行に並び変える方法
Excel(エクセル)
-
6
エクセルで同じ名前の人のセルの数値を合計したい
Windows Vista・XP
-
7
エクセルで複数ある同じ数値の行を1つだけにしたい
Excel(エクセル)
-
8
重複するIDのデータを1行にまとめるvbaのコード
Access(アクセス)
-
9
エクセル 別シートにあるデータを同一人物のデータとして自動に張り付けるには
Excel(エクセル)
-
10
複数の列に入力されている文字を一列にまとめる。
Excel(エクセル)
-
11
EXCEL 複数行のデータを1行にまとめる方法
Excel(エクセル)
-
12
エクセルで複数行のデータを1列にまとめたい
Excel(エクセル)
-
13
キーが同じを複数行を1行にまとめるには?
Oracle
-
14
【緊急】エクセルで複数の同じ名簿のデータを1つにまとめたい
Excel(エクセル)
-
15
エクセルで長い行を5行ごとに1列にするには?
Excel(エクセル)
-
16
EXCELで バラバラの列にあるデータを決められた列に移動したい。
その他(Microsoft Office)
-
17
エクセル 複数行ある同一商品を1行にまとめるには?
Excel(エクセル)
-
18
Excelで何回目に出現したデータかを調べたいのですが
その他(Microsoft Office)
-
19
同列にある複数の同じ番号をひとつにまとめる関数
Excel(エクセル)
-
20
エクセルで複数行のデータを1行にする方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プラス(足す)キーはどうやっ...
-
「か」を数字で表すとどうなり...
-
プーリーのキーが外れない
-
PgDn、PgUpの設定が急に変わっ...
-
キーボードがCtrlキーが押され...
-
Wordで繰り返しのショートカッ...
-
メールアドレスの作成の際上バ...
-
「(アクサングラーブ)キー」と...
-
キーボードにキーをつけるため...
-
hpのelitebook使ってますが最近...
-
HPの様子が変わった
-
(word) 文字列の上に線を引く方法
-
レジストリキーの削除方法(VC++...
-
BackSpaceキーを押しても・・・...
-
oを押すと6が出ます
-
Scroll Lockが勝手に有効になる...
-
日本年金機構からの郵送物
-
ワードのカーソル位置を最終文...
-
VBAでやり直しのショートカット...
-
VSCodeで上書きモードにならない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プラス(足す)キーはどうやっ...
-
キーボードがCtrlキーが押され...
-
「か」を数字で表すとどうなり...
-
Scroll Lockが勝手に有効になる...
-
Ctrlキー+HomeキーでセルA1へ移...
-
矢印キーのロック解除方法
-
メールアドレスの作成の際上バ...
-
パソコンの青い線枠が消えませ...
-
「(アクサングラーブ)キー」と...
-
プーリーのキーが外れない
-
PgDn、PgUpの設定が急に変わっ...
-
NumLockが勝手に切り替わる?
-
PDF-XChange Viewer 全画面表示...
-
Shiftキーのはめ方を教えてくだ...
-
VSCodeで上書きモードにならない
-
(word) 文字列の上に線を引く方法
-
左右の表のキー位置を合わせたい
-
キーボードの上部にあるランプ...
-
エクセルで複数行に散らばった...
-
Access2010 Enterで次テキスト...
おすすめ情報
>「郵便番号」だけは“抜け”がない、ということですか?
いえ、最も抜けが少ない部分ではありますが抜けは多少あります。
繋げた理由は、フルネームだけでソートを行うと同姓同名がいた場合に混ざってしまうからです。
名前+郵便番号で処理し、それでも手動で対応するのは大変な件数が残った場合は、
続いて
名前+電話番号という組み合わせで処理する。
という2段階で処理すれば、同姓同名を回避しつつ処理できると考えています。