- ベストアンサー
Excelでセルを結合してデータをまとめるには?
Excelのセルの結合がうまくいかずに困っています。 あ A か A さ A た B な B は B 上の文字はすべてそれぞれのセルに入っているとします。例えば「あ」はA1で「な」はA5です。 これを以下のような表にしたいのです。 あ か A さ た な B は このとき、「あかさ」は同じセル(つまり、A1)、AはセルB1 また、「たなは」はA2、BはセルB2 単純に結合すると、「あ 」 と、他のセルの文字が消えてしまうので困っています。 解決法を教えていただければありがたいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
B列のデータが同じものを1つのセルに結合したデータをセル内改行で表示したいならたとえば以下のような操作でできます。 C1セルには「=A1」と入力し、C2セルに以下の式を入力し下方向にオートフィルコピーします。 =IF(B1=B2,C1&CHAR(10)&A2,A2) D2セルに以下の式を入力し下方向にオートフィルコピーします。 =IF(B2=B3,"",IF(B1=B2,C1&CHAR(10)&A2,A2)) E1セルに以下の式を入力して下方向にオートフィルコピーします。 =IF(D1="","",B1) 次に「データ」「フィルタ」でE列の▼をクリックして「空白セル」のチェックを外し、希望のデータけを表示して、抽出された範囲をコピーし、E列のフィルタ解除してG1セル(または新規シート)に「貼り付け」ます。 最後にG列のセルの書式設定の表示形式タブで「折り返して全体を表示する」のチェックを入れます。
その他の回答 (4)
- MackyNo1
- ベストアンサー率53% (1521/2850)
No4の回答の訂正と補足です。 オートフィルタで抽出した数式データをコピーして貼り付けるときは「G1セルで右クリックし「形式を選択して貼り付け」で「値」を選択してください。 単純に縦の複数のセルの値を1つのセルにまとめたいだけならフィル(文字の割り付け)の機能を利用することができます。 A列の列幅を結合した文字列が1行で表示できるセル幅になるように十分広く設定しておいて、結合したいセル範囲を選択し、ホームタブの「フィル」「文字の割り付け」(Excel2003なら「編集」「フィル」「文字の割り付け」)をしてみてください。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.1です。質問文や補足で、条件がきちんと示されれば、できないとは思えません。 文字列を結合すべきセルの数が多くて、式を書くのが困難であれば、オートフィルの機能を併用してください。例えば、次のようなデータがあります。 A B 1 あ 2 い 3 う 4 え 5 お 6 か 7 き 8 く 9 け 10 こ (1)B1とB2セルに次の式を入力。 B1 =a1 B2 =b1&" "&a2 (2)B2にカーソルを置き、カーソル枠の右下の角をダブルクリック(オートフィル)。 (3)結合された文字列が算出されているB10をコピーして他のセルに「形式を選択して貼り付け」する。続いてそのセルに対して「折り返して全体を表示」を設定する。 以上により「あ~こ」が改行付きで1つのセルに入力されたデータが得られます。何千個であろうが、オートフィルなので、労力は大してかかりません。
お礼
回答有り難うございます。 文字列をまとめる方法としてはとても重宝します。 しかし、これを分類ごとにしなければならなくて……。 ありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでにデータが入っているセルを結合してしまうと、アラート画面が出て 質問にあるような状態になると思います。 (結合セルの最初のデータのみ表示) そこで結合ではなく、B列データが同じものを一つのセルにまとめる方法はどうでしょうか? VBAになってしまいますが・・・ 一例です。 画面左↓の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) 尚、データは1行目からあるとしています。 Sub test() 'この行から Dim i As Long Application.ScreenUpdating = False For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If Cells(i, 2) = Cells(i - 1, 2) Then Cells(i - 1, 1) = Cells(i - 1, 1) & vbCrLf & Cells(i, 1) Range(Cells(i, 1), Cells(i, 2)).Delete (xlUp) End If Next i Columns("A:B").HorizontalAlignment = xlCenter Application.ScreenUpdating = True End Sub 'この行まで ※ 一旦マクロを実行すると元に戻せませんので、別Sheetでマクロを試してみてください。 参考になりますかね?m(_ _)m
お礼
回答有り難うございます。 こちらのマクロ、試させて頂きました。一発でデータが整理されて非常に助かりました。 しかし、大量のデータだったため数時間単位で時間がかかってしまいました。 しかしながら、マクロを学んでみようというキッカケになりました。ありがとうございました。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
数が少なければ、手動で文字列を切り貼りしてください。改行の文字列は、Ctrl+Enterで入ります。数が多ければ、参考URLの方法で文字列を結合してください。
お礼
早速のご回答ありがとうございます。 例ではAが3つBが3つですが、実際は行の数が変則的なので、参考URLの式では対応できません。 分類(AやBのような)だけで1000弱あるので手動でするわけにもいかず…… また試行錯誤してみます。
お礼
ご回答ありがとうございます。 シンプルな式で、なるほど!と思いながら書いていきました。 最後に抽出されたデータは重複するセルを削除(=空白セルの削除)できれいにまとめられました。 大いに利用させていただきたいと思います。 本当にありがとうございました。