• ベストアンサー

エクセルのセル内の複数行表示

あるセルで除算を行い余りが出た場合、一つのセルの中で、 1行目 余りが○○ 2行目 ●●●● と、表示させています。 余りが出ない場合は、縦位置を中央揃えにして真ん中に1行●●●●とだけ表示させたいのです。 IF関数とBLANKを使ってみたのですが、余りが出ない数字を入れると#NAME?となってしまいます。 ちなみに、 =IF(A1=0,BLANK,余りが○○)&●●●● という感じで書いています。 複数行にするためには、「折り返して全体を表示する」にチェックを入れて、余りが○○の後ろにスペースを入れて調整しています。 分かる方、教えていただけませんか?

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

>CHARって、ASCIIコードの文字を返してくるんですよね? そうですね。 CHAR(49)="1"、CHAR(65)="A" のようになります。ワークシートではCHAR(32)以降は使うかもしれませんが、~31まではコントロールコードで、ワークシートで単独に使うと『・』が表示されることが多いです。 >CHAR(10)は、どのような文字を返してくるのでしょうか? ラインフィードの機能になります。改行コードです。LFと略されることが多いです。 >またこのようなASCIIコードってどうやって調べられているのでしょうか? >CODEを使ってみたけど、どうもいまいちしっくり来ない感じがして。 0~31(16進数で1Fまで)までのコントロールはテキストを直接操作したり、(昔、)プリンタに印刷命令を送る時に頻繁に使っていました。 下にあげた定数はVisual Basic for Applications のタイプライブラリで定義されており、 『MsgBox "エラーが発生しました。" & vbLf & vbLf & "中止します!"』のようにして使っています。   vbCrLf=Chr(13) + Chr(10)=キャリッジリターンとラインフィードの組み合わせ   vbCr=Chr(13)=キャリッジリターン   vbLf=Chr(10)=ラインフィード   vbTab=Chr(9)=タブ   vbBack=Chr(8)=バックスペース    VBAなのでChr()になります。ワークシート関数はCHAR()です。 コード自体は『アスキーコード表』、『ASCIIコード表』などで検索すれば一覧が分かると思います。 >2002ponさま  >私も、  >>CHAR(10)を追記することで改行します。  >と思ったんですが、できませんでした。  >2002です。 式『="A"&CHAR(10)&"B"』を入力しても、『A・B』が表示されるだけだと思います。 この状態で、セルの書式設定→折り返して全体を表示する にチェックをすると2行で表示されるはずです。 また、セルA1にABと入力して、AとBの間をAlt+Enterで改行してみます。 この状態で、  LEN(A1)=3、CODE(MID(A1,2,1))=10 になります。Alt+Enterでコード"10"を挿入しているのが分かります。 (Excel2000ではこうなりました) 説明になったでしょうか?

intruder
質問者

お礼

すごくためになりました。 質問内容に対する回答はもう十分すぎるほどです。 再度質問を返したい気分ですけど、これ以上高度だとちょっと理解に苦しみそうなので締め切らせて頂きます。 回答ありがとうございました。

その他の回答 (4)

  • 2002pon
  • ベストアンサー率48% (42/87)
回答No.4

横レスの形ですが。。。。 nishi6さま。 私も、 >CHAR(10)を追記することで改行します。 と思ったんですが、できませんでした。 2002です。 結果を値のみ複写すると、確かにラインはフィードされている (ワークシートでは改行されて表示されないが 入力用のフィールド(?)では改行されている) のですが、なぜなんでしょう?

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

=IF(A1=0,●●●●,"余りが"&○○&CHAR(10)&●●●●) CHAR(10)を追記することで改行します。 A1と『余りが○○』の関係がよく分かりませんが、 >複数行にするためには、「折り返して全体を表示する」にチェックを入れて、 >余りが○○の後ろにスペースを入れて調整しています。 B1÷B2の答えをB3に書くとします。B3には  =IF(MOD(B1,B2)=0,B1/B2,"余りが"&MOD(B1,B2)&CHAR(10)&INT(B1/B2)) とすれば、『余りが○○の後ろにスペースを入れて調整しています』が不要になるはずです。

intruder
質問者

お礼

CHARって、ASCIIコードの文字を返してくるんですよね? CHAR(10)は、どのような文字を返してくるのでしょうか? 回答いただいたとおりに入力したらちゃんと表示できましたけど、CHAR(10)単体ではちゃんとした文字が出てきませんでした。 ひょっとしたら改行記号であるとか? またこのようなASCIIコードってどうやって調べられているのでしょうか? CODEを使ってみたけど、どうもいまいちしっくり来ない感じがして。 質問を重ねてしまってすみません。

  • 2002pon
  • ベストアンサー率48% (42/87)
回答No.2

こんにちは。 =IF(A1=0,BLANK,余りが○○)&●●●● を =IF(A1=0,"",余りが○○)&●●●● にしてください。 正確には、 =IF(A1=0,"●●●●","余りが"&A1&"●●●●") でしょうか・・・・ ところで、BLANKってなんでしょう?

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

=IF(A1=0,●●●●,余りが○○&●●●●) ではどうでしょうか?

intruder
質問者

お礼

発想の転換ですね。 ちょっと全体の文が長くなりましたが、ちゃんと表示できました。 回答ありがとうございました。