質問
Excelで複数セルからの文字の結合
- 投稿日時:2005/08/30 07:42
A1~A20までのセルにそれぞれ文字が入っています。
=A1&A2&A3&…&A20
で、A1~A20までの内容を結合できると思います。
これ以外で、もっと簡単な式で同じ結果を出す方法は無いでしょうか?
回答 (5件)
- 最新から表示
- 回答順に表示
- ベストアンサーのみ表示
No.5
- 回答日時:2005/08/30 10:17
取り敢えずの結果が欲しい時なんかに良くやるのは、
B1=A1
B2=B1&A2
B3=B2&A3
…
B3以降はB2をコピペ。
で、B20に結合結果を出し、コピー、値として貼り付けとか。
この回答へのお礼
ありがとうございます。
思えば私もそのやり方をしていた事があります!
気付かなかった私は頭が固くなってしまったのでしょうか…。
No.4ベストアンサー10pt
- 回答日時:2005/08/30 09:58
ユーザー定義の関数を作れば可能ですが...
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.3ベストアンサー20pt
- 回答日時:2005/08/30 09:54
こんにちは。
>もっと簡単な式で同じ結果を出す方法は無いでしょうか?
「&」演算子を使う以外には、基本的にはないと思います。
領域を統合するという関数は、ワークシートには用意されていません。名前は、たぶん、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 ステートメントをつけるというのは良くある誤解です。
この回答へのお礼
ありがとうございます。
マクロ試してみましたが、思った通りの結果が得られました。
区切り文字の指定など、気を利かせて頂きとても便利です。
No.2
- 回答日時:2005/08/30 08:49
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
- 回答日時:2005/08/30 07:55
concatenate関数はいかがでしょうか。
この回答への補足
ありがとうございます。
「&」の入力から「,」の入力になって、入力しやすくはなるのですが…
例えば、A1:A20で指定すると文字列を繋げる、というようなモノを求めているのですが、無いでしょうか…
- 質問者のみ
- この回答にお礼をつける
このQ&Aを見た人はこんなQ&Aも見ています
- 4EXCELの日付データを文字列に変換したい
- 5Excel 指定の文字列を含むとカウントするようにしたい場合は?
- 6エクセルのセルに入力した文字数
- 7EXCEL・複数条件がある場合のCOUNTIFの書き方
- 8エクセルで数式の結果が反映されない(自動計算になっているのに)
- 9エクセルのセル分割
- 10VLOOKUP関数で複数の検索値を設定したいのですが
- 11EXCEL VBA で現在開いているブックのファイル名を取得する方法
- 12EXCEL(IF関数)でCELLの色を変える。
- 13EXCELでの重複データカウント方法について
- 14Excel での範囲指定を引数とした文字列連結
- 15エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
- 16エクセルでの指定文字 カウントについて
- 17エクセルで、条件に一致した行を別のセルに抜き出す方法
- 18Excelで空白行を削除するマクロは?
- 19エクセル:複数セルの情報を1つにまとめる方法
- 20エクセルで複数のセルの文字をつなげる
注目の記事
【新しいコミュニケーションのカタチって?】
離れて暮らす家族と手軽にコミュニケーションが取れたら・・・そのお悩み解決します!!
このQ&Aを見た人がよく見るQ&A
このカテゴリで人気のQ&Aランキング
- 4エクセルで数式の結果が反映されな...
- 5エクセルで重複しているデータの抽...
- 6エクセルのセルに入力した文字数
- 7Excel文書が読み取り専用になって解...
- 8エクセル2007のファイルを2003に変...
- 9フリーの表計算ソフト
- 10EXCELの日付データを文字列に変換し...
- 11エクセルにおいて、シートの保護を...
- 12エクセル STDEVとSTDEVPの違い
- 13excelで困っています。お力をお貸し...
- 14タブレットPCの機能について
- 15Excelで入力したデータを他のシート...
- 16Excelで、エラーの #DIV/0! を表示...
- 17WINDOWS8には、Excel200...
- 18excelからexcelへの差し込み印刷
- 19エクセルで条件に合うものを別シー...
- 20エクセルで列の全ての項目に文字を...