- ベストアンサー
エクセル アンド関数の繰り返し手間を省きたい
エクセル上で、 セル A1 A2 A3 A4 A5 と上から下まで1万行ほど並んでいるデータがあるのです、それらを結合させようとアンド関数で、=A1&A2&A3と打ち込んでいたのですが、1万レコードほどあるので、ちょっと無理っぽいんです。 複数のセルを、一発でワンセルに結合させる方法はあるのでしょうか? どなたか教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
参考程度に 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を試してね
その他の回答 (3)
- a987654
- ベストアンサー率26% (112/415)
何のためにそのような必要性があるのでしょうか? 単なる興味だったらこのような事をかんがえるのはやめましょう。 なにがしろの理由があるものとして参考までに。 エクセル2007で1セル最大文字制限が32767バイトです。 従って1万行の平均文字数が半角3文字以下であれば、たの方の 答えられているようなやり方で可能なことは可能です。 エクセル2007以前のバージョンでは問題外です。 しかしそれをどのように利用するのでしょうか? 1セルに表示してもそれだけで画面からあふれしまうのでは 無いでしょうか?
- mhassy
- ベストアンサー率43% (16/37)
一旦、CSV形式でファイル出力し、ワードなどで開きます。 「セルの区切り」で使用される文字(コード)を「置換え」で「消して」しまう。 保存後、再びExcelで開けば、セルが結合された状態になると思いますけど。
お礼
言われてみれば! 目からウロコでした。 ありがとうございました。
マクロじゃだめですか? 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
お礼
こ・これはすごいです。 できました! ありがとうございました。
お礼
で・できました! ありがとうございました。