プロが教える店舗&オフィスのセキュリティ対策術

複数のセルを参照して文字列を結合し、2つずつでCHAR(10)で改行し、未入力のセルの空白を削除する方法はありませんか?

=SUBSTITUTE(TRIM(A1&" "&B1&CHAR(10)&A2&" "&B2&CHAR(10)&A3&" "&B3&CHAR(10)
&A4&" "&B4&CHAR(10)&A5&" "&B5),"","")

現在、上記のような数式を入れて一つのセルに表示させています。

しかし、これだと後半のセルが未入力の場合、空白で表示されるため、表示させるセルの中で結合した文字列が上の方に行ってしまいます。
表示させるセルは縦横共に中央揃えにしたいのですが、何かいい方法はありませんか?

まだまだ初心者ですが、いろいろ調べた結果、とりあえず上記の式にたどり着きました。


マクロではなく関数でなんとかなればと考えております。

分かりにくい文章になってしまったかもしれませんが、よろしくお願いします。

A 回答 (3件)

>いろいろ調べた結果、とりあえず上記の式にたどり着きました。


あと一歩で完成です。
提示の数式の誤りはSUBSTITUTE関数の検索文字列が""で置換文字列が""となっているので実質では何も処理されていません。
また、TRIM関数の位置が無意味な状態です。
=TRIM(SUBSTITUTE(A1&" "&B1&CHAR(10)&A2&" "&B2&CHAR(10)&A3&" "&B3&CHAR(10)
&A4&" "&B4&CHAR(10)&A5&" "&B5,CHAR(10)&" ",""))
A1:B5のセルで空欄があったときにCHAR(10)&" "が余分な文字列になりますので、この2文字を""に置き換えます。
その結果で末尾に" "が残る場合がありますので、それをTRIM関数で除きます。
「文字列の結合、改行、空白削除」の回答画像2
    • good
    • 1
この回答へのお礼

ありがとうございました。
希望していた通りのことがでできました。SUBSTITUTEとTRIMの使い方がちゃんとわかっていなくて、ネットで見たものに当てはめただけという状態でした。
分かりやすい解説もしていただき、本当にありがとうございました。

お礼日時:2014/11/19 13:37

どんな具合にデータを入れててそこからどんな結果が欲しいのか、イマイチ説明が足りてませんが。




>2つずつでCHAR(10)で改行し、未入力のセルの空白を削除する

添付図:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TRIM(CONCATENATE(A1," ",B1," ",A2," ",B2," ",A3," ",B3," ",A4," ",B4," ",A5," ",B5))," ",CHAR(10),8)," ",CHAR(10),6)," ",CHAR(10),4)," ",CHAR(10),2)
「文字列の結合、改行、空白削除」の回答画像3
    • good
    • 0
この回答へのお礼

分かりづらい説明ですみませんでした。
ありがとうございました。

お礼日時:2014/11/19 13:34

恐らくもっと綺麗な解が有ると思いますが、こんな感じでも実現できました。


セルに入力するデータの中に「_(アンダーバー)」が有る場合は、式中の「_」を別の使用しない文字に置き換えて下さい。

=SUBSTITUTE(SUBSTITUTE(TRIM(SUBSTITUTE(" "&A1&"_"&B1&" "&A2&"_"&B2&" "&A3&"_"&B3&" "&A4&"_"&B4&" "&A5&"_"&B5&" "," "&"_"," "))," ",CHAR(10)),"_"," ")
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2014/11/19 14:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!