• ベストアンサー

複数のセルに入っているデータを一つのセルに入れる方法。

&関数を使用する方法以外で、複数のセルに入っているデータを一つのセルに入れる方法ってありますか? 【データ→区切り位置】で一つのセルに入っているデータを分割することはできますよね? これの反対っていうような感覚で、簡単にできる方法があれば教えてください。

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

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

> &関数を使用する方法以外で、 なぜ、そう思うのか良く分かりませんが、#1 さんの回答は、標準的ですけれども、Concatenate という長い単語は、おそらく、Excelで標準で使わせる目的ではないようです。 "&" の入ったデータが、Lotus123との互換性がないために作られたものです。あまり、便利な関数だと思いません。"&"の代わりに、","で区切らすだけですから。 "&" は関数ではなく、演算子ですが、VBAのいわゆるJoin関数(使用目的が違います)のようなものを、マ社はなぜ作らなかったのか、その理由が分かりません。 以下は、VBAはお分かりにならないかもしれませんが、一応、プロシージャーと関数を作ってみましたので、公開しておきます。 [区切り位置]の反対 ただし、デリミターは、現在は入れられません。 Sub CellsJoin()  Dim Rng As Range  Dim i As Long, j As Long  Dim CombinedValue As String  Set Rng = Selection 'マウスで範囲を選択  With Rng   If .Count > 1 Then    For i = 1 To .Rows.Count     For j = 1 To .Columns.Count      CombinedValue = CombinedValue & .Cells(i, j).Value     Next j     .Cells(i, 1).Value = CombinedValue     .Rows(i).Offset(, 1).Resize(, j - 2).ClearContents     CombinedValue = ""    Next i   End If  End With  Set Rng = Nothing End Sub ユーザー定義関数 '標準モジュールへ Function myJoin(セル As Range, _     Optional Delimiter As String = "") As Variant  Dim myData As String  If セル.Rows.Count <> 1 And _  セル.Columns.Count <> 1 Then Exit Function  For Each c In セル  myData = myData & Delimiter & c.Value  Next c  myJoin = Mid$(myData, 1 + Len(Delimiter)) End Function 使用法 a b c d e =MYJOIN(A1:E1) 結果: abcde デリミターを入れた場合 =MYJOIN(A1:E1,",") 結果: a,b,c,d,e p.s.「採用」する・しないという言葉は、レスにはつけないでね。質問系掲示板では、回答者さんに対して禁句です。

y0923
質問者

お礼

ありがとうございます。 まさに求めていた方法でした。

その他の回答 (3)

  • FlyingAce
  • ベストアンサー率44% (214/485)
回答No.3

フリーアドインソフト「XL C Kit ~編集~」はいかがでしょう? セル内の結合や、文字列変換(半角/全角変換)等いろいろなことができます。 (Windows2000、XPでも問題なく使えます)

参考URL:
http://www.vector.co.jp/soft/win95/business/se233980.html
回答No.2

あまり良い方法ではないかもしれませんが、次の方法では? 【手順】 (1)結合したいファイルをTEXT形式でいったん保存して閉じる。 (2)再度、txt形式でファイルを開けるが、そのときテキストファイウィザードのNo.2で区切り文字のタブのチェックを外して次へ (3)そのまま完了(必要に応じて列のデータ形式を選択) これで、セルが結合されます

y0923
質問者

お礼

ありがとうございます。 ただちょっと手間がかかる作業ですよね。 No.1さんの方法を採用したいと思います。

  • tee-tan
  • ベストアンサー率26% (5/19)
回答No.1

こんにちは。 CONCATENATEという関数はどうでしょうか? この関数でしたらセル内の文字を文字列として 繋ぐことが出来ると思います。

y0923
質問者

お礼

すばやい回答ありがとうございます。 簡単に文字列をつなぐことができるので、今後使わせて頂きます。

関連するQ&A