- ベストアンサー
複数のセルに入っているデータを一つのセルに入れる方法。
&関数を使用する方法以外で、複数のセルに入っているデータを一つのセルに入れる方法ってありますか? 【データ→区切り位置】で一つのセルに入っているデータを分割することはできますよね? これの反対っていうような感覚で、簡単にできる方法があれば教えてください。
- みんなの回答 (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.「採用」する・しないという言葉は、レスにはつけないでね。質問系掲示板では、回答者さんに対して禁句です。
その他の回答 (3)
- FlyingAce
- ベストアンサー率44% (214/485)
フリーアドインソフト「XL C Kit ~編集~」はいかがでしょう? セル内の結合や、文字列変換(半角/全角変換)等いろいろなことができます。 (Windows2000、XPでも問題なく使えます)
- SAKURAMYLOVE
- ベストアンサー率30% (162/533)
あまり良い方法ではないかもしれませんが、次の方法では? 【手順】 (1)結合したいファイルをTEXT形式でいったん保存して閉じる。 (2)再度、txt形式でファイルを開けるが、そのときテキストファイウィザードのNo.2で区切り文字のタブのチェックを外して次へ (3)そのまま完了(必要に応じて列のデータ形式を選択) これで、セルが結合されます
お礼
ありがとうございます。 ただちょっと手間がかかる作業ですよね。 No.1さんの方法を採用したいと思います。
- tee-tan
- ベストアンサー率26% (5/19)
こんにちは。 CONCATENATEという関数はどうでしょうか? この関数でしたらセル内の文字を文字列として 繋ぐことが出来ると思います。
お礼
すばやい回答ありがとうございます。 簡単に文字列をつなぐことができるので、今後使わせて頂きます。
お礼
ありがとうございます。 まさに求めていた方法でした。