- ベストアンサー
Excelの複数のセルを一つに表示する方法
下記のようなexcelの表でA1~A5に値を入れ、B1にカンマで区切ってA1~A5をまとめて表記する際に数式では =A1&","&A2&","&A3&","&A4&","&A5 とすればいいのですが、A1~A5のうちA1~A3までにしか値が入っていない場合、下記のようにa,b,c,,となってしまいます。値を入力するセルの数に範囲を設けた場合、例えば下記の場合はa,b,cと表記できる方法はないでしょうか。 A B 1 a a,b,c,, 2 b 3 c 4 5
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
こんな方法もあります。 =SUBSTITUTE(TRIM(A1&" "&A2&" "&A3&" "&A4&" "&A5)," ",",") この方法は、前がブランクでも、「,,c,d」とはなりません。 ただし、各セル内に「スペース」があるとダメです。 正規表現が使えれば、 =RegExpReplace(A1&","&A2&","&A3&","&A4&","&A5,",+(.+),+","$1",TRUE) エクセル・ワークシート関数用正規表現アドイン: http://wiki.fdiary.net/toshiaki/?%C0%B5%B5%AC%C9%BD%B8%BDExcel%A5%A2%A5%C9%A5%A4%A5%F3
その他の回答 (3)
#3です。 正規表現の式は無視して下さい。
- imogasi
- ベストアンサー率27% (4737/17069)
Function comp(a) s = "" For Each cl In a If cl = "" Then Else s = s & cl & "," End If Next If s = "" Then comp = "" Else comp = Left(s, Len(s) - 1) End If End Function これを標準モジュ-ルに入れて セルには =comp(A1:A5) のように入れる。
お礼
No.1さんのと比べて文字数の表記の制限がかからないのでとても助かりました。ありがとうございました。
- n-jun
- ベストアンサー率33% (959/2873)
=LEFT(A1&","&A2&","&A3&","&A4&","&A5,MAX(0,COUNTA(A1:A5)*2-1)) もっといい方法があるかも知れませんので、ご参考程度に。
お礼
式の意味はまだ理解していないのですが、この通りに実行したらうまくいきました。ありがとうございます。
お礼
この方法はマクロを使わなくてよいのですね。 早速試してみたところうまくいきました。 式の意味も理解できそうです。 vizzarさんありがとうございました。