FileMaker
お役立ちブログ
List関数で作る「完璧なカンマ区切り」
✅ はじめに
改行区切りの際にご紹介した、カンマ区切り術をもう少し詳しくわかりやすく解説!
💀 恐怖の「If連結」地獄
まずは、カンマ区切りを完璧に作ろうとして沼にハマった例を提示します。
「住所1, 住所2, 建物名」をつなげたい。でも、どれかが空のときにカンマが余るのは格好悪い……。
真面目な人ほど、こう書いてしまいます。
// 地獄のIf連結
If ( not IsEmpty ( 住所1 ) ; 住所1 ) &
If ( not IsEmpty ( 住所1 ) and ( not IsEmpty ( 住所2 ) or not IsEmpty ( 建物名 ) ) ; “, ” ) &
If ( not IsEmpty ( 住所2 ) ; 住所2 ) &
If ( not IsEmpty ( 住所2 ) and not IsEmpty ( 建物名 ) ; “, ” ) &
If ( not IsEmpty ( 建物名 ) ; 建物名 )
【ここが地獄!】
- 読むだけで目がチカチカする。
- 「住所3」が増えた瞬間、絶望する。
- 途中の and や or の条件設定でミスを誘発する。
⭐️救世主:List + Substitute
「この苦労、1行で終わります。」
Substitute ( List ( 住所1 ; 住所2 ; 建物名 ) ; ¶ ; “, ” )
【なぜこれでいいのか?】
List関数が、空のフィールドを完全に無視して、中身があるものだけを「改行」でつないでくれる。
Substitute関数が、その「改行」を「カンマ」に置換する。
つまり、「値がある時だけカンマを入れる」という複雑な判定を、FileMakerの標準機能に丸投げできるんです。
🧪 この技の「隠れたメリット」
メンテナンス性: フィールドが10個に増えても、Listの中に足すだけ。
柔軟性: カンマを「 / 」や「 + 」に変えたいときも、1箇所書き換えるだけ。
バグ耐性:
Ifの条件漏れによる「カンマの連続」や「文末カンマ」が物理的に発生しなくなる。
📌If文をこねくり回すのは、もうやめましょう。
Listでまとめて、Substituteで整える。
これだけで、あなたの計算式は『芸術的』に美しくなります✨
その他の記事
