数式を使ってセルに与えるテキストを改行させたい。

Numbers '09 ver2.1


セルに直接文字列を入力する場合は、セルの書式として「セル内でテキストを折り返す」にチェックを入れておき、option + リターンで複数行の文字列を入力できますが、関数の引数として改行を含む文字列を与えるにはどうすれば良いでしょうか?


Excelだったっけ? Excel VBAだったかな?「CRFL」みたいなエスケープコードとかいうんでしたっけ...? あったと思いますが、Numbersの場合どうすればよいか見当たりません。


混みあった数式を見やすくするために、数式エディタ上でのみかけの改行やインデントはセルへの直接入力と同様に、option + で可能なことは理解しています。

iMac, Mac OS X (10.6.8)

投稿日 2013/12/25 01:32

返信
返信: 9

2013/12/25 22:45 T22T への返信

T22T さん

検証報告ありがとうございます。


最初にいただいたアドバイスへの返信が言葉足らずだったようですみません。


数式バーや数式エディタ上で、IF文のネストなどを読み易くするために「option + return」「option + tab」を使っているのですが、ダブルクォーテーションではさみたい「option + return」もエティタ上で改行となってしまい、行頭となった閉じる側のダブルクォーテーションの前に「option + tab」を入れれば、エディタ上でのインデントは揃えられるのですが、この「option + tab」もセル内で機能してしまうので、あくまでセル内ではインデントさせたくない場合は、数式の編集時にネスト文の体裁を犠牲にしなきゃなりませんね。


ということで、「option +」のキーコンビネーションをダブルクォーテーションではさんでセル内で機能させることが可能ということは、最初にいただいたアドバイスで十分伝わっていますよ。


他の言語にあるような、「特殊キーのコードをキャラクタとしたい場合は、バックスラッシュに続けて入力する」とか、「縦棒で挟むと使用禁止文字も使える」みたいな、エスケープシーケンスっていうんでしたっけ?そういった方法が実はあったりしないか、探しているところです。


この辺りの情報にお心当たりがありましたら、よろしくお願いします。

2013/12/26 00:17 koji_i への返信

koji_iさん、すみません、少し勘違いしていたようです。 数式エディタ内では改行および、インデントをつけて、読みやすくしたいけれども、セル内では改行やインデントをつけて表示したくはないということですね。 この解釈でよければ、数式エディタ内で改行やタブをダブルクォーテーションで囲む必要は無いですね(下図のA1セル。 B1セルはダブルクォーテーションでOption + Return + Tabを囲った場合;「セル内でテキストを折り返す」のチェックは外してもよいみたいです)。


ユーザがアップロードしたファイル


Excelの場合は、数式内でCHAR(10)関数を使うと改行コードを入たテキストの結合が可能なのですが、Numbersでは10の引数を受け付けないようです。 数式でセルに"を入力する場合は =CHAR(34)、あるいは、=""""で可能みたいです。

2013/12/25 04:45 koji_i への返信

失礼致します。 試しに、Option + Returnで入力される段落記号(¶)をMID関数で参照してCODE関数に入れてみると、10が返ってきました。 ユニコードの10はLINE FEEDが割り当てられている様です。 そこで、CHAR関数に10を入れてみましたが、これは32以上の数字でないとエラーになるようです。


一方で、数式バーに


= "A" & "


と入力し、Option + Returnで改行させることができるようなので、そのまま、続けて、


" & "B"


と入力すると、セル内には、


A

B


と2行の文字が表示されました。 なので、あまりかっこ良くないのですが、


="A" & "

" & "B"


といった具合に、double quatation marks 内に段落記号を入れて、数式を2行にするとよさそうです。 如何でしょう?

2013/12/25 19:23 koji_i への返信

koji_iさん、度々、失礼致します。 色々と試しているうちにわかったのですが、ダブルクゥオーテーションに Option + Tab も入れることができるみたいです。 なので、数式バーに、


="A"&"


と入力し、続いて、Option + Return + Tabと入力後に、


"&"B"


となどど入力していくと、セルには2行目の先頭にタブが入った状態で、


A

B

C


といった感じであたかもインデントしているような表示になりました。

2013/12/26 23:33 koji_i への返信

度々、失礼致します。 USのコミュニティーを検索すると以下のディスカッションがありました。

→ Chr(10) line feed and Chr(13) carriage return?


unicodeの8232と8233が使えるようです。 前者は、「セル内でテキストを折り返すにチェックを入れる」必要があり、後者は、チェックの必要がないようです。 ご確認下さい。

2013/12/25 07:50 T22T への返信

T22T さん

アドバイスありがとうございます。


option + リターンをダブルクォーテーションで囲むことで、セル内でもoption + リターンとして機能してくれるのですね。


ちょっと凝ったことをする場合、数式エディタでインデント(optionn + タブ)を使うのですが、これと組合せるとタブもセル内で働いてしまうので、読み易さを犠牲にすれば改行込みの文字列をセルに渡せますね。


インデントの並びを崩さずにできる方法があればスマートなのですが、外部のエディタを使うほどでもなく、直接Numbersの数式エディタで編集する程度なら、この方法で乗り切れそうです。


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

2013/12/26 22:34 T22T への返信

T22T さん

また説明が不十分だったようで申し訳ありません。T22Tさんは何も勘違いされてませんよ。「option + return をダブルクォーテーションで挟む(閉じる側のダブルクォーテーションは次の行へ行ってしまうけど…)。」という方法はありがたく使わせていただいております。


セル内に、「行頭を揃えた箇条書のような複数行の文字列」を与える数式を作成する際、option + return をダブルクォーテーションで囲めば改行として機能して目的は達成されるけれど、エディタ上では閉じる側のダブルクォーテーションが次の行の先頭となり、ネストのインデントを飛び出してしまいます。体裁を気にしてこの閉じる側のダブルクォーテーションの位置を下げるために option + tab を使ってしまうと、今度はこの option + tab もダブルクォーテーションで囲まれる中に含ませることになってしまうので、結果のセル内は「行頭の揃わない複数行の文字列」となってしまう。 つまり、エディタ上の体裁を犠牲にすればとりあえずの目的は達成される。


ということです。


= IF([条件 1]

,[true case 1]

,IF([条件 2]

,"項目 1" & [改行コード] & "項目 2"

,[false case 2]

)

)

(注「[ ]」はプレイスホルダです。)

本当はエディタ上で上のような表現ができればよいのですが、現状ではT22Tさんに検証していただいたように、


= IF([条件 1]

,[true case 1]

,IF([条件 2]

,"項目 1" & "

" & "項目 2"

,[false case 2]

)

)


となってしまい、option + tab を使って無理やり体裁を


= IF([条件 1]

,[true case 1]

,IF([条件 2]

,"項目 1" & "

" & "項目 2"

,[false case 2]

)

)


とすると、結果のセル内では「項目 2」のインデントが下がってしまいますよね?

IF文のネストがさらに深くなり、改行させたい文字列が何カ所にもあったら、とても読みづらくなってしまうので、上記最初のIF文のような書き方ができないものかと思っております。


また、キーコンビネーションの発行コードを取得するために char関数を使おうとしても、「127 を除いた 32 以上 65,535 以下の数値を引数にしなければならない」という仕様のため、この範囲にない option + return などには通用しないことも理解しております。


なお、最初の質問投稿で触れた「セル内でテキストを折り返すにチェックを入れる」は、私の勘違いですね。こちらは、テキストがセル幅に納まらない文字数の場合に折り返して、セルの下方向に送っていくものですね。


ご指摘ありがとうございます。

2013/12/27 08:04 T22T への返信

T22T さん

有力な情報をお寄せいただきありがとうございます。


貼っていただいたリンク先でも 8232の場合は、「セル内でテキストを折り返すにチェックを入れておく必要がある」と言及されていますが、ざっと実験してみた限りではこのチェックがなくても改行として機能してくれました。


ま、とにかくおかげで込み入った条件式を読み易く作成することができます。


この辺りについては、Unicodeに関しての知識を持ち合わせていれば良かったのかもしれませんが、Numbersのtipsとしてもっと取り上げられていてもよいのではと思ってしまいます。やはり大多数の方が「Numbersでいんぐりもんぐり苦労するくらいなら、Excel使っちゃえ…。」ってことなのでしょうか…。


とにかくおかげさまで、すっきりと解決マークを付けさせていただきます。ありがとうございました。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

数式を使ってセルに与えるテキストを改行させたい。

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。