よくある質問
なんか問題がある?心配しないで、答えは全部ここにいる。
全サイト検索

数式が反映されない/正しく動作しないのはなぜ?

Ragic で数式を使用していると、以下のような疑問に直面することがあります:

「最初はうまく動いていたのに、途中から更新されなくなったのはなぜ?」

「インポートや『他のフォーム内のフィールド値を更新』、『データコンバート』を使ったのに数式が反映されない?」

これらの現象の主な原因は、Ragic の基本的な仕様である:

「数式は、データが入力されたときのみ発動する」というルールにあります。

1. 数式は「データ入力時」のみ発動

レコード作成後に数式を追加・変更した場合、その時点ですでに存在しているレコードには新しい数式は自動適用されません。

これは、数式がそのシート(画面)上で手動入力・編集されたときにのみ発動するためです。

この仕組みは、システムのパフォーマンス維持と、既存データの意図しない変化を防ぐために設計されています。

数式を既存レコードに反映させたい場合: 以下のいずれかの方法を用いて再計算を発動する必要があります:

手動で各レコードを編集し直す(どれかの値を上書き保存する)

「数式の再計算」処理を実行する(手入力なしでバックエンドから再計算が可能)

詳しい操作方法については、数式ドキュメントをご参照ください。

2. 数式は「同じシート(画面)」上でデータが入力されたときのみ発動します

数式は、その数式が設定されている同じシート(インターフェース)上で変更が発生しない限り、発動しません。

たとえば、数式が「注文」シートに設定されている場合、「商品」シートなど別のシートで価格などの関連データを編集しても、注文シート側の数式は発動しません。

数式が再計算されるのは、注文シートで直接データを編集したとき(例:数量の変更)に限られます。

また、注文シートのデータが手動入力以外の方法で更新された場合も、数式は自動的に発動しない場合があります。

その場合は、以下で説明するように追加の設定が必要です。

アクションボタンやインポートで他シートを更新する場合

他のフォーム内のフィールド値を更新データコンバートなどのアクションボタン、あるいは インポートを通じて他のシートのフィールドを更新した場合でも、 高度な設定で「すべての関数を再計算」にチェックを入れていないと、数式は発動しません。

リストページとフォームページは別インターフェースとして扱われます

Ragic では、フォームページとリストページ異なる画面(UI)として扱われます。 したがって、数式がフォームページのみに設定されている場合、リストページで同じフィールドを編集しても数式は発動しません(逆も同様です)。

よくリストページで編集を行う運用の場合は、該当のフィールドをリストページにも追加し、同じ数式を設定することを推奨します。これにより、どちらの画面からデータを編集しても数式が正しく動作するようになります。

マルチバージョンシートでの注意点

マルチシートが設定されているシートでは、それぞれのバージョンごとに数式設定は独立しています。必要に応じて、各バージョンに個別で数式を設定する必要があります。

同じフィールドに対してバージョンごとに異なる数式を設定している場合は、切り替え時に値が上書きされる可能性があるため、計算結果が一致するよう注意してください。

各バージョンでの数式設定を確認したい場合は、フィールド情報を利用すると便利です。

子テーブルから作成されたシート/参照子テーブル

子テーブルから新しいフォームを作成や、他のフォームからのリンクを表示においては、フォームページの設計モード左側にあるフォーム設定から「保存時に元のフォームの全ての関数を再計算」を有効にしてください。 詳しくはこちらの文書をご参照ください。

3. その他、数式が発動しない原因

(1) 数式の構文エラー

数式の記述ミスが原因で発動しないことがあります。特に条件式(IF関数)を使う際は注意が必要です:

.RAW の使用が必要なケースかどうか確認してください。

TODAY() や NOW() は IF の中で直接使用できません。別フィールドで計算させて、それを参照する形にしてください。こちらの例も参考に。

(2) フィールド型と数式の不一致

数式によっては、特定のフィールド種類でしか機能しないものもあります。たとえば、計算や比較演算子は 数値型・金額型・日付型にのみ対応しています。

(3) 自動生成フィールドを参照した数式が保存時にズレる

自動生成フィールドの最終的な保存値は、データ入力中に表示されている値と異なる場合があります。特に、複数のユーザーが同時にレコードを作成している場合に起こりやすくなります。

たとえば、2 人のユーザーに同じ自動生成番号が表示されていても、先に 1 件目のレコードが保存されると、2 人目の値は重複を避けるために自動的に更新されます。

この自動生成フィールドを数式で参照している場合、保存前には正しく見えていても、保存後に結果が正しくなくなることがあります。

これを防ぐには、シート内に自動生成フィールドを参照する数式がある場合、保存時にバックエンドで数式を再計算するよう、後続ワークフローを設定してください。

(4) TODAY() を使った日付の再計算が日次で反映されない

この場合はこちらのガイドに沿って、トラブルシューティングを行ってください。

既存レコードの数式を再計算する方法

既存レコードの数式を更新したい場合は、設計モードを開いてシート上で数式の再計算を実行するか、アクションボタンこのレコードにすべての数式を適用を作成してください。

また、たとえば TODAYTZ() を使って現在日付を判定している場合のように、数式を毎日自動で再計算したいときは、日次の数式再計算ワークフローを設定できます。

Ragic にフィードバックを送る

ご意見をお聞かせください(必須・複数選択可)

上記の項目について、詳細をご記入ください:

フィードバック理解のため、スクリーンショットをご提供ください:

貴重なご意見をありがとうございます!

    無料でRagicを始める

    Googleアカウントに登録

    Ragic 株式会社
    1-888-666-8037
    info@ragic.com
    利用規約 | プライバシーポリシー