LongText項目に入力された複数行の文字列から、1行目を取得する方法はありますでしょうか。
詳細項目に入力された文章の改行で区切られた1行目を計算式でタイトルとして扱うのが目的です。
split関数を使って、区切り文字として改行コードを指定し、それをIndex関数で1行目を指定すれば良さそうな気がします。
でも改行コードの指定がわかりません。他の言語とかだとChr(13)+chr(10)とかを区切り文字にすればできるのですが、改行コードの指定方法ってあるのでしょうか?
ご教授いただければ幸いです。
よろしくお願いいたします。
Virtual Columnを二つに分け、まず一つ目のVCで
にあるように
SPLIT([Lontext], "
")
といった具合に、関数の
中で改行してみてください。
ここでSPLITして生成されるLISTを別途VIRTUAL COLUMNでINDEX関数で1のVALUEを返すことで改行ベースで1行目を抽出できると思います。(簡単にテストしてみましたが、その中では何とか一行名のVALUEを返してくれました。)
Solutionがみつかり、良かったです。😀
TSUJI様 アドバイスありがとうございます。
改行コードを指定するのではなくダブルクオーテーション内に改行をいれる方法は思いつきませんでした。
今試して見たら、改行部分で1行を取得することができました。
本当にありがとうございました。
お礼申し上げます。
TSUJI様、ご返信いただき誠にありがとうございます。
実はすでに「。」は試しており、残念ながら1行目の終わりが「。」でなく改行で終わっているものが多々あるので、なんとか改行を区切り文字として扱えないかと思い質問させていただきました。「。」でなくて改行コードで1行と判断させたいのですができないものでしょうか。
解決策は、papaponさんのご想像の通りです。
まず、ロングテキストが入力されたfieldsを[LongTexts]とします。長文の日本語フォントで、それぞれの分は「。」で区切られているという前提です。
この状態でVIRTUAL COLUMNを作成。APP FORMULAに入れる関数ですが、
Index(
Split([LongTexts],"。"),
1)
とすれば、長文の第一行目が返されるはずです。
まずSplit([LongTexts],"。")の関数でロングテキストの文章を「。」でスプリットし、LISTタイプのデータとします。このリストは所謂プログラムで言うところの配列に近いものですので、一番初めの文章を抜き出したいということなので、INDEX関数と合わせることで上記のような構文となります。
他の言語ではINDEXはゼロから始まりますが、APPSHEETでは1から始まりますのでご注意を。