• ベストアンサー

エクセル アンド関数の繰り返し手間を省きたい

エクセル上で、 セル A1 A2 A3 A4 A5 と上から下まで1万行ほど並んでいるデータがあるのです、それらを結合させようとアンド関数で、=A1&A2&A3と打ち込んでいたのですが、1万レコードほどあるので、ちょっと無理っぽいんです。 複数のセルを、一発でワンセルに結合させる方法はあるのでしょうか? どなたか教えてください。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

参考程度に Sub test1() Dim a, b a = Range("a1").CurrentRegion a = Application.Transpose(a) b = Join(Application.Index(a, 1, 0), "") Range("b1").Value = b End Sub Sub test2() Dim a, b, i a = Range("a1").CurrentRegion b = "" For i = 1 To UBound(a) b = b & a(i, 1) Next i Range("b1").Value = b End Sub excelのバージョンによっては、test1はエラーが出ます 1万行ならexcel2000は確実にエラーが出ます(仕様) その場合はtest2を試してね

ya44goo
質問者

お礼

で・できました! ありがとうございました。

その他の回答 (3)

  • a987654
  • ベストアンサー率26% (112/415)
回答No.4

何のためにそのような必要性があるのでしょうか? 単なる興味だったらこのような事をかんがえるのはやめましょう。 なにがしろの理由があるものとして参考までに。 エクセル2007で1セル最大文字制限が32767バイトです。 従って1万行の平均文字数が半角3文字以下であれば、たの方の 答えられているようなやり方で可能なことは可能です。 エクセル2007以前のバージョンでは問題外です。 しかしそれをどのように利用するのでしょうか? 1セルに表示してもそれだけで画面からあふれしまうのでは 無いでしょうか?

  • mhassy
  • ベストアンサー率43% (16/37)
回答No.2

一旦、CSV形式でファイル出力し、ワードなどで開きます。 「セルの区切り」で使用される文字(コード)を「置換え」で「消して」しまう。 保存後、再びExcelで開けば、セルが結合された状態になると思いますけど。

ya44goo
質問者

お礼

言われてみれば! 目からウロコでした。 ありがとうございました。

noname#115927
noname#115927
回答No.1

マクロじゃだめですか? B1セルに「=COUNTA(A1:A10000)」を入れといて、マクロにこんなコード書いて、実行するとC1セルに結果出ますが。 関数じゃないから答えになってないか。 Sub macro() Dim A As Integer Dim St As String St = "" For A = 1 To Range("b1") St = St & Cells(A, 1).Value Next A Range("c1").Value = St End Sub

ya44goo
質問者

お礼

こ・これはすごいです。 できました! ありがとうございました。

関連するQ&A