Forguncy 10 オンラインヘルプ
アプリの開発 / ロジックの実装 / 数式と関数 / 数式の使用
このトピックで
    数式の使用
    このトピックで

    セルやリストビューのテンプレート行のセルのほか、いくつかの通常コマンドやサーバーサイドコマンドの中ではExcelと同様の数式を使用できます。

    テーブルの数式フィールドでも数式が使用できます。数式フィールドは使用可能な関数の種類が大きく異なり、また計算処理はサーバー側(データベース上)で行われます。数式フィールドの詳細については、数式フィールドの作成を参照してください。

    セルに数式を使用する

    数式は、セルに直接入力することも、セル型によってはセルの既定値として設定することもできます。
    セルの既定値として設定する場合、対応しているセル型は次のとおりです。なお、リストビューについては以降の説明を参照してください。

    セルの既定値として数式を使用できるセル型

    セルに直接入力する場合は、次のように行います。

    1. セルに数式を入力します。

      半角の「=」に続けて数式を入力します。
    2. [ホーム]→[開始(デバッグ)]をクリックします。

      アプリケーションで実際に表示される画面で数式の結果を確認します。

      注意: Forguncyの場合、数式はアプリケーションを実行しない限り計算されません。これはExcelと異なり、基本的にデータはテーブルに格納されており、アプリケーションの実行時に初めてデータがページに表示されるという動作に合わせたForguncyの仕様です。

      参考: ForguncyではExcelと同様、関数を使用することができます。詳細は関数の使用を参照してください。

    リストビュー内のセル参照(相対参照)

    リストビュー内のセルを参照して計算した結果を、リストビュー内で表示するか、あるいはリストビュー外で表示するかによって、結果が変わるときがあります。

    たとえば、下の図のQ3セルに設定した「=SUM(M3)」の場合、参照元であるQ3セルが参照先のセルであるM3と同じリストビュー内に存在するため、実行時に返される参照は「単価」列全体を参照するセル範囲ではなく、「単価」列にある同一行の単一セルとなります。
    一方、V3セルに設定した「=SUM(M3)」の場合、参照元であるV3セルが参照先のセルであるM3が存在するリストビューの外側にあるセルとなっているため、実行時に返される参照は「単価」列全体を参照するセル範囲となります。

    参考: データの入力規則、およびコマンドから行テンプレート内のセルを参照した場合には、常にリストビューの選択行のみが返されます。これは行テンプレートよりも下の行やリストビュー全体の範囲を指定した場合であっても同様です。そのため、データの入力規則、およびコマンドでは列方向の範囲のセル参照を必要とするVLOOKUPのような関数は、事実上使用できません。通常のセルにVLOOKUP関数を使用した数式を設定し、その結果をデータの入力規則やコマンドから参照するようにすることで、そのような問題を回避することが可能です。

    リストビュー内のセル参照(絶対参照)

    リストビュー内のセルでは、絶対参照を使用することで相対参照とは異なるセルが参照されます。

    たとえば、下の図のQ3セルのように、「=$E$3」とE3セルを絶対参照した場合、実行時にはリストビューのすべてのQ列のセルにおいて「製品名」列の最初の行のセルが参照されます。その結果、リストビューのすべてのQ列のセルの値が「乾燥バナナ」となります。

    数式、データ連結、ユーザー入力の優先順位

    1つのセルに、数式とデータ連結の両方を設定することが可能です。また、テキストボックス型セルなど、ユーザー入力が可能なセルに対しても数式は設定可能です。このような場合、データ連結によって読み込まれる値、数式の計算によって求められる値、そしてユーザーが入力した値のどれが適用されるかは、次のようになります。

    Excelエクスポートの場合

    PDFエクスポートの場合

    循環参照

    Forguncyでは循環参照(数式が入力されているセル自体を参照する)が使用可能となっており、この動作はExcelのオプション設定「反復計算を行う」を有効にした際の動作と同様です。循環参照を行っているセルは、Excelと同様にページ内のどのセルが変更された場合であっても再計算が行われます。意図しない再計算が頻繁に行われる可能性があることから、使用に際しては注意が必要です。

    多くの場合、循環参照を使用する代わりに、値変更をトリガーとしたいセルのコマンドとしてセルプロパティの設定を使用して計算した値を設定するようにします。この方法の場合には循環参照のような反復計算は行われませんが、コマンドを設定したセルが値変更したときにのみ再計算した値を設定することができます。

    コマンド内で数式を使う

    通常コマンドまたはサーバーサイドコマンドの中で次のようなエディターが表示されるところでは数式を使用することができます。

    注意:

    サーバーサイトコマンドでは、セル参照および配列の指定が必要な関数は使用できません。