• ベストアンサー
  • すぐに回答を!

Excelで複数セルからの文字の結合

A1~A20までのセルにそれぞれ文字が入っています。 =A1&A2&A3&…&A20 で、A1~A20までの内容を結合できると思います。 これ以外で、もっと簡単な式で同じ結果を出す方法は無いでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数1030
  • ありがとう数10

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.3
  • Wendy02
  • ベストアンサー率57% (3570/6232)

こんにちは。 >もっと簡単な式で同じ結果を出す方法は無いでしょうか? 「&」演算子を使う以外には、基本的にはないと思います。 領域を統合するという関数は、ワークシートには用意されていません。名前は、たぶん、JOINという名が付けられるはずですが、それは未だ採用されていません。 Concatenate関数は、別にExcel用にあるのではなく、他機種が、「&」演算子が使えないためにあるだけに過ぎません。 そこで、myJoin というユーザー定義関数を考えてみました。 設定の仕方 Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、このコードを貼り付けて、再び、Alt + F11 で、画面を閉じます。 ただし、登録したブックのみの有効です。 '<標準モジュール> Function myJoin(範囲 As Range, Optional 区切り文字 As String) As Variant Dim c As Range, buf As String   If 範囲.Rows.Count = 1 Or 範囲.Columns.Count = 1 Then    For Each c In 範囲      buf = buf & 区切り文字 & c.Value    Next c    If 区切り文字 <> "" Then      myJoin = Mid$(buf, 2)      Else      myJoin = buf    End If    Else    myJoin = CVErr(xlErrRef) 'エラー値   End If End Function 使い方: =MYJOIN(A1:A20) =MYJOIN(A1:A20,",") とすると、「,」区切りで出てきます。 必ず、縦1列か横1行の範囲を指定してください。 どちらか一方が2列か2行以上の場合は、エラーが出ます。 汎用的にどこにでも使いたい場合は、アドイン化しなければなりません。マクロが少し分る方の、Public ステートメントをつけるというのは良くある誤解です。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 マクロ試してみましたが、思った通りの結果が得られました。 区切り文字の指定など、気を利かせて頂きとても便利です。

関連するQ&A

  • エクセルで複数セルの結合にて

    A1 A2 A3 aaa bbb ccc 上の様に、セルA1~3にそれぞれ入力してあります。 この3個のセルを1個に結合したいのですが結合すると A1のaaaしか生き残ってくれません。 A1 aaabbbccc 又は、aaa bbb ccc この様に結合時に文字も結合する方法はないでしょうか?

  • Excelのセル名称の結合

    エクセルでセルA1,A2に例えばABC,DEFという文字が入っているとき, A3にABCDEFと結合したものを入れる操作をするにはどのような式を書けばよいのでしょうか。

  • エクセルで複数セルの文字を一回で行ごとに結合したい

    文字を消さずにセルを結合する方法は http://okwave.jp/qa2246502.html こちらの質問の回答を見てできるようになりました。 しかし、同じ結合作業を数行にわたってしたいと思い使ってみたら大きな1つのセルになってしまいました。 (例えばA1~A5とB1~B5を選択してマクロを使ったらA1にすべての内容が入っている状態) 行ごとの結合になるように1回でできる方法はありませんでしょうか。 量が多いので1行ずつ作業するのが大変だなぁと思ったので質問してみました。 よろしくお願いします。

その他の回答 (4)

  • 回答No.5

取り敢えずの結果が欲しい時なんかに良くやるのは、 B1=A1 B2=B1&A2 B3=B2&A3 … B3以降はB2をコピペ。 で、B20に結合結果を出し、コピー、値として貼り付けとか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 思えば私もそのやり方をしていた事があります! 気付かなかった私は頭が固くなってしまったのでしょうか…。

  • 回答No.4
  • mshr1962
  • ベストアンサー率39% (7416/18946)

ユーザー定義の関数を作れば可能ですが... Alt+F11でVisualBasicEditorを起動して 「挿入」「モジュール」でモジュールを作成(既に有る場合はこの作業は不要) モジュールに下記のコードを作成 Function concat(HANI As Range) Dim Sx, Sy, Ex, Ey As Long, WKS As String Sx = HANI.Columns.Column Sy = HANI.Rows.Row Ex = HANI.Columns.Count - Sx + 1 Ey = HANI.Rows.Count - Sy + 1 For Hx = Sx To Ex For Hy = Sy To Ey WKS = WKS & Cells(Hy, Hx) Next Hy Next Hx concat = WKS End Function =concat(A1:A20) で結果を出せます。 ※複数列の場合は行方向を先に連結します。 逆がいい場合はFor..to..Next文の順番を変えてください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 シンプルでわかりやすいマクロですね。参考になります。

  • 回答No.2

VBAですがこんな感じと思います。 結合した値はB1セルに書き出します。 Sub 結合() Dim str As String For i = 1 To 20 str = str & Cells(i, 1).Value Next Cells(1, 2).Value = str End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 やっぱりVBAを使うことになるのですね。

  • 回答No.1

concatenate関数はいかがでしょうか。

参考URL:
http://www.morgan.co.jp/kiso/4excel-6.htm

共感・感謝の気持ちを伝えよう!

質問者からの補足

ありがとうございます。 「&」の入力から「,」の入力になって、入力しやすくはなるのですが… 例えば、A1:A20で指定すると文字列を繋げる、というようなモノを求めているのですが、無いでしょうか…

関連するQ&A

  • Excelでセルとセルを結合したいのですが・・・

    質問させていただきます。 Excel2007を使っています。 複数のセルを結合して一つのセルにまとめる作業をしているのですが、 =A1&" "&A2&" "A3 のようにすると結合できました。&" "&でスペースも確保できました。 しかし、結合するデータの中に空白があります。 データの中の空白を無視し、スペースを消してほしいのですがどうすればよいかわかりません。 例えば、A1にデータがない場合、スペースが空いてからA2が出てきます。 その空白をなくす方法を教えてください。お願いします。

  • EXCEL セルの結合について

    こんにちは。 EXCELのセルの結合についてうかがいたいのですが、L字型のセルを結合させることはできますか? 例えば、A1~A3を結合させた上で、A1~C3を結合させたいのです。 よろしくお願いいたします。

  • Excelで(セルを結合して中央揃え)した後の 結合された方のセルを参照した場合

    Excelで(セルを結合して中央揃え)した後の 結合された方のセルを参照した場合 全然参照されてきません。 わかりやすく例をだすと (1)A1とB1を(セルを結合して中央揃え)します。 (2)そこに文字を打ちます。 (3)他のシートのセルに  ="『"&Sheet1!A1&""』" とするとA1に入っていたものはそのままコピーされます。 (4)ですが  ="『"&Sheet1!A2&""』" とするとまったくコピーされません。 なんとか結合されたA2の方を参照したとしてもコピーできる方法はないでしょうか?困っています。どなたか助けてください。

  • Excelで2行結合したセルに連続行参照させたい

    エクセルでシートAで2行づつ結合したセルにシートBにある連続の行を反映させたいのですが 結合したセルA1:A2に =シートB!A1 と入力して式のコピペをしても A3:A4のセルには =シートB!A3 となり2行とばしになってしまいます。 どのようにすれば上手くいくでしょうか? バージョンはExcel2010です。

  • セルを結合した時のエクセル集計について

    以前にも同じような質問をさせていただきましたが、応用が利かないので教えてください。 エクセルでセルの結合を使用した場合の集計の仕方についてです。 現在、以下の様に入力をしており、A1&#65374;A3、A4&#65374;A7、A8&#65374;A9をセル結合しています。           A          B 1        α社          5 2                    6 3                    7 4        β社           5 5                    6 6                     7 7                     8 8        α社          5 9                      6 この場合にα社のB列の集計を行ないたいのですが、本来29となるところが、それぞれ一番上の行の数値のみを集計し10となってしまいます。29にするにはどの様な式を入力すればよいでしょうか。因みに現在の式は以下の通りです。 =SUMIF(A1:A9,"α社",B1:B9) 以上よろしくお願い致します。

  • エクセルの結合について

    エクセルのセルを結合したいのですが、 A1・B1・C1セルの結合や、A1・A2・A3セルの結合は可能なのですが、 A1・A2・B1 のセルの結合って可能なのでしょうか? 可能であれば、方法はありますでしょうか? 結合は、四角形出なければ不可能なのでしょうか?

  • Excel(セルの結合マクロ)

    いつもお世話になっております。 Excelのマクロで、選択範囲の中で、下のセルが空白のものは、上のセルと結合されるマクロを作りたいと考えています。 (例1:A1セルに”TEST”が入力されており、A2,A3セルが空白として、A1:A3を選択し、マクロを実行するとA1からA3がセル結合される  例2:A1に”TEST2”B2に"TEST3"が入力されており、A1:B3を選択すると、A1からA3が結合され、B2とB3も結合される) 説明が下手で申し訳ないのですが、お力を貸していただけませんでしょうか? よろしくお願いいたします。

  • 結合したセルに参照式を・・・

    伝わりにくいかもしれませんが、ご容赦下さい。 sheet1にA1:A4を結合したセルを作って、そこにsheet2のA1を参照するように =sheet2!A1と式を入れます。 A5:A8の結合セルは、sheet2のA2、A9:A12の結合セルは、sheet2のA3を参照・・・ としたいので、A1:A4の結合セルを選択して、下方向にドラッグさせたのですが、A5:A8の セルの参照式が=sheet2!A5になってしまいます。 どうやらA2:A4もカウントしてしまっているように思います。 一つ一つ手入力で入れて行けば問題なくできますが、ここにこれから何百データと入れて行くので、 手入力は非常に面倒で避けたいです。 ドラッグでA5:A8はsheet2のA2、A9:A12はsheet2のA3・・・とさせる方法はないでしょうか? (要は、結合した中の最段以外の行はカウントしないように)

  • エクセルでA1のセルの文字にB1のセルの文字を結合できますでしょうか?

    エクセルでA1のセルの文字にB1のセルの文字を結合できますでしょうか? 別のセルに=CONCATENATE(A1,B1)ではなくあくまでA1のセルの文字に B1のセルの文字をつなげたいのです。 出来ますでしょうか? よろしくお願いします。

  • エクセルで文字の結合のやり方

    A1には10 A2には20 A3には30 A4には40・・・の文字があり、B1にはA B2にはB B3にはC B4にはD・・・の文字がある場合、A1とB1を結合させて10A A2とB2を結合させて20B A3とB3を結合させて30C・・・などにするにはどうすればよいでしょうか? 宜しくお願いします。