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 ; 建物名 ) ; ¶ ; “, ” )
【なぜこれでいいのか?】
  1. List関数が、空のフィールドを完全に無視して、中身があるものだけを「改行」でつないでくれる。

  2. Substitute関数が、その「改行」を「カンマ」に置換する。

つまり、「値がある時だけカンマを入れる」という複雑な判定を、FileMakerの標準機能に丸投げできるんです。

🧪 この技の「隠れたメリット」

  • メンテナンス性: フィールドが10個に増えても、Listの中に足すだけ。

  • 柔軟性: カンマを「 / 」や「 + 」に変えたいときも、1箇所書き換えるだけ。

  • バグ耐性: If の条件漏れによる「カンマの連続」や「文末カンマ」が物理的に発生しなくなる。

📌If文をこねくり回すのは、もうやめましょう。
Listでまとめて、Substituteで整える。
これだけで、あなたの計算式は『芸術的』に美しくなります✨

参考:
リファレンス>関数リファレンス>論理関数>List
https://help.claris.com/archive/fm19/ja/pro-help/content/let.html

その他の記事