【エクセル】行で重複しているものを統合させ、1行にまとめる方法について教えて...
2013/9/507:20:39
【エクセル】行で重複しているものを統合させ、1行にまとめる方法について教えて下さい!
項目A 項目B 項目C
あ かかか カカカ
あ ききき キキキ
あ くくく ククク
あ けけけ
あ こここ
い さささ サササ
い ししし シシシ
う すすす ススス
う せせせ
え そそそ
上記のデータ(※数字ではなく文字)において、行で重複しているものを統合させて下記のように1行に書き換えたいです。
項目A 項目B 項目C
あ かかかきききけけけこここ カカカキキキククク
い さささししし サササシシシ
う すすすせせせ ススス
え そそそ
※分かりにくければ、下記サイト・添付画像をご参考いただけますでしょうか。
http://www.excel.studio-kazu.jp/kw/20050706173827.html
重複を1つにするだけでなく、同時に別の行のセル(文字)も1つに統合させたいのですが、これは可能でしょうか?もしできる方法があれば、教えていただきたいです。CONCATENATE関数、統合などもいろいろ調べてみたのですがわかりません。どうぞよろしくお願いいたします。
補足>>実際には項目Aで例えば「あ」が何行まで重複することが考えられるのでしょう?
最大でも、5行くらいです。ただし、項目Aの重複は不規則に並んでいます。
この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。
ベストアンサーに選ばれた回答
mskz1954さん
2013/9/509:43:10
関数では厳しいと思いまいたのでマクロ(VBA)ですが如何でしょうか。
データをSheet1としてSheet2に並び替えています。
Sheet1のシートタブ上で右クリック→コードの表示→サンプルコード貼り付け→シート上でAlt+F8キー押下、sample実行
Sub sample()
Dim i As Long, db, wk, wk1
Set db = CreateObject("Scripting.Dictionary")
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
wk = Cells(i, "A")
If db.exists(wk) Then
wk1 = db(wk)
Else
wk1 = ","
End If
wk1 = Split(wk1, ",")
wk1(0) = wk1(0) & Cells(i, "B")
wk1(1) = wk1(1) & Cells(i, "C")
db(wk) = Join(wk1, ",")
Next
wk = db.keys
With Sheets("sheet2")
.Cells.ClearContents
Range("A1:C1").Copy .Cells(1, "A")
For i = 0 To UBound(wk)
.Cells(i + 2, "A") = wk(i)
.Cells(i + 2, "B").Resize(, 2) = Split(db(wk(i)), ",")
Next
End With
Set db = Nothing
End Sub
このQ&Aで解決しましたか?質問する
閉じる
ベストアンサー以外の回答
1〜2件/2件中
- 並び替え:回答日時の
- 新しい順
- |古い順
2013/9/509:12:50
統合は集計の機能ですからデータが文字列の時は無理かと思います。文字列を結合するCONCATENATE関数は範囲指定が出来なくて一つ一つのセルを指定するしかないので不便ですがしょうがないですね。
関数で一回横に書き出して結合する、という方法でやってみました。
F2に
=IF(SUMPRODUCT(($A$1:$A$11=$E2)*($B$1:$B$11<>""))<COLUMN(A1),"",INDEX($B$1:$B$11,MATCH($E2,$A$1:$A$11,0)+COLUMN(A1)-1))
横(空白が出るまで)下にオートフィルでコピー
※A列が昇順にならんでいるのが条件です。
F7に
=IF(SUMPRODUCT(($A$1:$A$11=$E2)*($C$1:$C$11<>""))<COLUMN(A1),"",INDEX($C$1:$C$11,MATCH($E2,$A$1:$A$11,0)+COLUMN(A1)-1))
(BがCになっただけです)
横下にオートフィルでコピー
これで最長列がJ列だと分かるので
D13に
=CONCATENATE(F2,G2,H2,I2,J2)&" "&CONCATENATE(F7,G7,H7,I7,J7)
下にオートフィルでコピー
mitokuboさん
編集あり2013/9/514:21:37
実際には項目Aで例えば「あ」が何行まで重複することが考えられるのでしょう。
補足を有難うございます。
5行が最高ということで関数で対応する方法です。
お示しの表がシート1に有って2行目から下方にデータが入力されているとします。
操作が複雑になりますのでたくさんの作業列を設けて対応します。
D2セルには次の式を入力して下方にドラッグコピーします。
=IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,ROUNDDOWN(MAX(D$1:D1),-2)+101,INDEX(D$1:D1,MATCH(A2,A$1:A1,0))+COUNTIF(A$1:A1,A2)))
項目Aの重複は複雑に並んでいても問題はありません。
F2セルには次の式を入力して下方にドラッグコピーします。
=IF(ROW(A1)>MAX(D:D)/100,"",INDEX($A:$A,MATCH(ROW(A1)*100+1,$D:$D,0)))
G2セルには次の式を入力してP2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF($F2="","",IF(COLUMN(A1)=1,INDEX($B:$B,MATCH(ROW(A1)*100+COLUMN(A1),$D:$D,0)),IF(COLUMN(A1)<=5,IF(COUNTIF($D:$D,ROW(A1)*100+COLUMN(A1))=0,F2,F2&INDEX($B:$B,MATCH(ROW(A1)*100+COLUMN(A1),$D:$D,0))),IF(COLUMN(A1)=6,IF(COUNTIF($D:$D,ROW(A1)*100+COLUMN(A1)-5)=0,"", INDEX($C:$C,MATCH(ROW(A1)*100+COLUMN(A1)-5,$D:$D,0))),IF(COLUMN(A1)<=10, IF(COUNTIF($D:$D,ROW(A1)*100+COLUMN(A1)-5)=0,F2, F2&INDEX($C:$C,MATCH(ROW(A1)*100+COLUMN(A1)-5,$D:$D,0))),"")))))
これで答えは出ているようなものですがシート2にお求めの答えを表示させるとしてA2セルには次の式を入力してC2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(COLUMN(A1)=1,Sheet1!$F2,IF(COLUMN(A1)=2,Sheet1!$K2,IF(COLUMN(A1)=3,IF(Sheet1!$P2=0,"",Sheet1!$P2),"")))
最後にB列やC列の幅を広げて終了します。
あわせて知りたい
- EXCEL:重複してるデーターをひとつにして、数の合計を出す方法。 添付の表で色分...
- エクセルで重複データの内容を1つのセルにまとめ、1行で表示する方法を教えてく...
- エクセルの重複した値を、1つにまとめることができますか。 数万件のメールアド...
- エクセルで、重複したセルを統合する方法について教えてください。 A列だけに、リ...
- エクセルで重複データの内容を右の列にどんどん入れて、1行で表示する方法を教え...
- エクセルで、種類を同じ項目でまとめて、それぞれの個数を合計表示させたいです。...
- なぜ、スーパー西友は合資会社になったのでしょう? 経営者です。 NPO法人を...
- Excelで重複した文字列の統合について Excel2010で以下のようなデータを編集して...
- エクセルファイルのデータ統合について質問がございます。 エクセルファイルのデ...
- エクセルのVBAで重複したデータを統合する(上のデータに統合する)にはどうした...
- excelで重複データ列をまとめる事はできますでしょうか。 添付のようなシート...
- Excelで該当するものが複数あるものを抽出し,それを1行にカンマ区切りで表示する...
- エクセルで重複した内容をまとめて複数列になってしまっているデータを一列にまと...
- 4000N(ニュートン)は何kgまで耐えられますか? 500角の床材です。
- ACCESSについて質問です。複数行を1行にしたい。 テーブル内の複数行を1行に...
- エクセルで色のついた文字を抽出したいです。 A1のセルの文字が青い場合、B1...
- 新選組の「隊中美男五人衆」 馬越三郎くらいしか知りません。 あと4人は誰です...
- 【エクセルについての質問です】重複データを抽出して数値の合計を算出する数式を...
- エクセルで在庫がある商品のみを表示する在庫表 EXCEL2010を使用して在庫管理表を...
- pcにおいて、時刻の表示を正確に(秒針まで)確認できる方法を探しています。 ...
この質問につけられたタグ
年上の人を好きになっちゃいました
回答受付中の質問
カテゴリQ&Aランキング
- 戻る
- 次へ
総合Q&Aランキング
みんなのお悩み相談室
みんなのアンテナ
Yahoo!知恵袋カテゴリ
お客様自身の責任と判断で、ご利用ください。