Ragicの数式は、他の表計算ソフト(Excelなど)の数式とほとんど同じですが、主な違いは、フィールドがヘッダーの値や数式を直接参照する点です。
数式は数字だけでなく、文字列や日付などにも対応し、どのような数式が必要かを自動的に判断します。ただし、念のため、数式計算をさせたいフィールドの入力タイプ(例:数値、日付)を正しく選択することをお勧めします。
フォームページのデザインモードフィールドヘッダーをクリックし、左側のデザインパネルで関数を選択すると、このフィールドの関数の入力を始められます。
以下は、フィールド F9(金額)の計算式が D9*E9(価格*数量)である場合の販売注文の計算例である。 ここで注意するのは、数式に入力するフィールド番号は、ヘッダーがのセルであることです。
数式が設定されたフィールドの右上にfx()アイコンが表示されます。
アイコンをクリックすると、その数式のすべての参照フィールドが表示されるので、すばやく参照することができます。
現在複数選択フィールドは、数式の参照フィールドとして設定することができませんので、ご注意ください。
その他の関数は、Ragicがサポートする関数一覧列表。
数式の作り方がわからないときは、数式生成器で必要なルールを指定できます。生成はAIにお任せください。
注意事項:
1. ルールを記述し、このフィールドに期待される返り値を指定します。例えば:今日の日付を返す
2. 数式にテキストを含める場合は、二重引用符で囲みます。例えば:"取引日"
3. 数式を設定した後、結果が期待される結果を満たしているか手動で確認してください
数式生成器の画面を開くには、以下のFormula AI Open Linkをクリックしてください。
ルールを入力し、数式生成をクリックします。
以下は、通常の数式と承認数式を含む、シートに基づいてフィールドを選択して入力できるデフォルトのシナリオです。
例えば、「無料配送」フィールドで、「総額」が「無料配送金額」よりも大きい場合は「あり」を返し、そうでない場合は「なし」を返すようにしたい場合は、「A1 が A2 により大きい場合は "Y" を返し、そうでない場合は "N" を返す」を選択し、関連するフィールドと返り値が一致するように修正してください。
入力が完了したら、数式生成をクリックして、以下の対応する数式を生成する。計算式の横にある「コピー」アイコンをクリックすると、計算式が自動的に入力されます。
運算子によって、数式がどのように実行されるかが決まります。 通常の演算では、一定の順序がある(例:掛け算は足し算や引き算より優先)。通常の数学演算と同様に、()を使って演算の順序を変更できます。
ただし、Ragicでは、コロン:を使ってセルの合計値を求めることはできませんので、ご注意ください。
加算、減算、乗算などの基本的な数学演算を行って数値を生成するには、以下の算術演算子を使ってください。
演算子 | 意味 | 例 |
---|---|---|
+ (プラス) | 加算 | 3+3 |
– (マイナス) | 減算 | 3–1 |
* (アスタリスク) | 乗算 | 3*3 |
/ (スラッシュ) | 除算 | 3/3 |
^ (キャレット) | N乗 | 3^2 |
2つの数値を比較するために、以下の演算子を使用できます。また、これらの運算子を条件式で使用すると、与えられた条件を満たしているかどうかを判断し、TRUE または FALSE を表示することができます。
比較演算子 | 意味 | 例 |
---|---|---|
= | イコール | A1=B1 |
== | イコール | A1==B1 |
> | だいなり/以上 | A1>B1 |
< | しょうなり/以下 | A1 |
> = | だいなりイコール | A1>=B1 |
< = | しょうなりイコール | A1<=B1 |
!= | ノットイコール | IF(A1!=B1,'yes','no') |
<> | ノットイコール | IF(A1<>B1,'yes','no') |
数式中の文字列を標示するために、「一重引用符」または「二重引用符」を使用することができます。 この文章では「一重引用符」を使って説明しますが、Ragicではどちらの形式もサポートされています。
Ragicの数式は、ヘッダを直接参照しています。 これにより、特に子テーブル計算が簡単になり、より複雑な数式を少ない作業で書ける。
以下は、販売注文の計算例です。 子テーブルには,注文された商品の価格(D9)と数量(E9)が記載されており,各商品について顧客が支払うべき合計金額(D9*E9)は,乗算によって求められる。
小計E13の金額は、F9ヘッダーの金額から算出されます。
上記の例以外にも、子テーブルで関数を使用できる場合があります。たとえば、子テーブルのデータ数を数える必要がある場合、新しいフィールドを追加して、子テーブルのフィールドヘッダを使用して COUNT() 式を記入することができます。
子テーブルの値の計算や合計に他の高度な条件式が必要な場合は、COUNTIF関数、 COUNTIFS関数 SUMIF関数、またはSUMIFS関数を参照してください。。
UNIQUE() および UNIQUE().length は、子テーブルの非反復値を計算するために使用することができます。
UNIQUE():参照フィールドにあるすべての非重複値を表示する。 区切り文字が設定されていない場合、デフォルトの区切り文字は "," となり、下図のような UNIQUE() フィールドとなる。また、区切り文字をカスタマイズして UNIQUE(field, "区切り文字") と記述することもできる。例えば、UNIQUE(A1,"/"), UNIQUE(A1," ") または UNIQUE(A1,", ") などです。 その結果は、Angie/Lillian/Amy/Rex、Angie Lillian Amy Rex、Angie, Lillian, Amy, Rex、となります。
UNIQUE().length:参照フィールドの非重複値の数を計算する。
例:
指定した条件に合致する子テーブルのフィールド値を返送する場合は、VLOOKUPを使用します。
関数 | 文法 |
---|---|
VLOOKUP | VLOOKUP(value, queryField, returnField, [approximateMatch=true], [findMultiple=false]) |
VLOOKUP関数には以下のパラメータが必要です:
value は必須で、これはチェックされる値であり、指定された値として、あるいは直接参照されるフィールド
queryField は必須で、これは子テーブルの比較対象として使われるフィールド
returnField は必須で、条件を満たした時に返送される子テーブルフィールド
[approximateMatch=true] はオプションとして入力する、必要ではありません。このパラメータは、完全に一致させたいかどうかを示します。デフォルトはオフで、完全一致させたい場合は、このパラメータに"false"を入力して
[findMultiple=false] はオプションとして入力する、必要ではありません。このパラメータは、条件に一致する複数の値を列挙するかどうかを示します。デフォルトはオフで、複数の条件値を返したい場合は、このパラメータにtrueを入力して
例:
次の子テーブルで、水曜日の先生の名前を調べたい。
ユーザーが検索日を入力するための自由入力フィールドを追加し、別のフィールドでVLOOKUP(A9, A4, B4, false, false) または VLOOKUP(A9, A4, B4) を適用すれば、ユーザーが入力した検索日に応じてシステムが自動的に「王先生」を返送します。:
曖昧な比較をしたい場合はVLOOKUP(A9, A4, B4, true, true)を使用し、条件に一致する複数の値を返送することが可能です。
日付は日数によって増加または減少する。A1 が日付フィールドの場合、A1+7 は A1 の 7 日後となる。
もう一つのよく使われる日付の計算式は、「生まれた年、月、日をA1とすると、「(TODAY()-A1)/365.25」という計算式を設定して、現在の年齢を表示します。Ragicは数式を数値で処理するため、年齢フィールドに数値を選択することを忘れないでください。
計算には、時間フィールド(形式HH:mm)または数値フィールドが必要です。
例えば、A1が開始時間(形式HH:mm)、A2が終了時間(形式HH:mm)の場合、開始時間から終了時間の計算方法は二つあります:
A3 が時間フィールド(形式 HH:MM)の場合は、A2-A1 の計算式を適用できます ; A3 が数値フィールド(フォーマット 0.0)の場合、(A2-A1)/60 の計算式を適用できます。
注 :上記の時間計算は、同日だけに適用されるものです。午後10時から午前4時など、日付がまたがる場合は、以下の方法で行う必要があります:
時間フィールドは日付を含む形式(例:yyyy/MM/dd HH:mm)、計算フィールドは数値フィールド(形式0.0)必須。
例えば、A1 は開始日時(yyyy/MM/dd HH:mm)、A2 は終了日時(yyyy/MM/dd HH:mm) 。
そして、時間計算フィールドA3(数値形式0.0)を、(A2-A1)*24の式で適用する。
日付フィールドに適用すると、その日付(開始日)の前後何営業日かを表す日付が返される。営業日には、土日祝日を含みません(ただし、指定された営業日が含みます)。WORKDAYを使用すると、請求書の締切日、配送予定日、営業日数を計算する際に、週末や休日を除外し、指定した営業日を含むことができます。
関数 | 文法 |
---|---|
WORKDAY | WORKDAY(start_date,days,["holidays"], ["makeup_workdays"]) |
WORKDAY関数には以下のパラメータが必要です:
Start_date は必須で、開始日の日付を表す。
Days は必須で、start_dateの前後で週末および休日でない日数を表す。正数は将来の日付、負数は過去の日付を表す。
Holidays はオプションで、祝祭日など、勤務カレンダーから除外する1つまたは複数の日付のオプションリストです。 このリストは、日付のシリアル値を表す定数の配列である。
Makeup_workdays はオプションで、勤務カレンダーから含める1つ以上の日付(例:振替出勤日)のリストです。 このリストは、日付のシリアル値を表す定数の配列である。
例1:
日付フィールドを"WORKDAY(A1,A2,["2017/06/16","2017/06/19"])"数式に適用
A1の日付値を2017/06/15、A2の数値を9とし、除外する日付を "2017/06/16"、"2017/06/19 "と指定する。
開始日から土日と2017/06/16、2017/06/19の特定休日を除く9日目から算出した結果は、 2017/06/30となります。
例2:
日付フィールドを"WORKDAY(A1,A2,["2017/06/16","2017/06/19"],["2017/06/24"])"数式に適用
A1の日付値を2017/06/15、A2の数値を9とし、除外日を「2017/06/16」「2017/06/19」と指定するが、営業日として土曜日の「2017/06/24」を指定する
開始日以降の土日と2017/06/16、2017/06/19の特定休日を除き、特定営業日「2017/06/24」を含む場合は、9日目の結果が 2017/06/29になります。
日付フィールドに適用され、パラメータを使用して、どの日が何日目に週末であるかを示し(どの日が営業日であるかを指定し)、日付(開始日)の前後に指定した営業日数を表す日付を取得できます。勤務日とは、土日祝日を除いた日(ただし、特定労働日を含む)です。WORKDAYを使用すると、請求書の締切日、配送予定日、営業日数を計算する際に、週末や休日は除外して、指定された勤務日数を含めることができます。
関数 | 文法 |
---|---|
WORKDAY | WORKDAY.INTL(start_date,days,weekend_no,["holidays"], ["makeup_workdays"]) |
WORKDAY.INTL関数には、以下のパラメータが必要:
Start_date は必須で、開始日の日付を表す。
Days は必須で、開始日の前後で週末および休日でない日数を表す。正数は未来の日付、負数は過去の日付を表す。
Weekend_no はオプションで、週末が土日以外の場合は、以下の表を参照して、対応するWeekend番号を記入してください。
Holidays はオプションで、祝祭日など、勤務カレンダーから除外する1つまたは複数の日付のオプションリストです。 このリストは、日付のシリアル値を表す定数の配列である。
Makeup_workdays はオプションで、勤務カレンダーから含める1つ以上の日付(例:振替出勤日)のオプションリストです。 このリストは、日付のシリアル値を表す定数の配列である。
例1:
日付フィールドを "WORKDAY(A1,A2,2,["2017/06/16", "2017/06/19"])" 数式に適用。
A1の日付値を2017/06/15、A2の数値を9とし、日曜日と月曜日を週末とした場合、除外日は "2017/06/16 "と "2017/06/19"
開始日から土日と2017/06/16、2017/06/19の特定休日を除く9日目から算出した結果が 2017/06/29になります。
数値フィールドに適用すると、start_date から end_date までの勤務日数の全日数が返される。勤務日数には、土日祝祭日を含みません(特定された勤務日は含まれます)。NETWORKDAYSを使用して、所定の期間に勤務した日数に基づいて従業員の給与総額を計算できます。
関数 | 文法 |
---|---|
NETWORKDAYS | NETWORKDAYS(start_date, end_date, ["holidays"], ["makeup_workdays"]) |
NETWORKDAYSの関数には、以下のパラメータが必要:
Start_date は必須で、開始日の日付を表す。
End_date は必須で、終了日の日付を表す。
Holidays はオプションで、祝祭日など、勤務カレンダーから除外する1つまたは複数の日付のオプションリストです。 このリストは、日付のシリアル値を表す定数の配列である。
Makeup_workdays はオプションで、勤務カレンダーから含める1つ以上の日付(例:振替出勤日)のオプションリストです。 このリストは、日付のシリアル値を表す定数の配列である。
例1:
数値フィールドを"NETWORKDAYS(E1,E2,['2017/10/04','2017/10/09','2017/10/10'])"数式に適用。
E1の日付値を2017/10/01、E2の日付値を2017/10/31とすると、除外日は "2017/10/04", "2017/10/09", "2017/10/10"
開始日から終了日までの労働日数は、土日および指定3日間を除外し、19日になります。
例2:
数値フィールドを"NETWORKDAYS(E1,E2,['2017/10/04','2017/10/09','2017/10/10'],['2017/10/28','2017/10/29'])"数式に適用。
E1の日付値を2017/10/01、E2の日付値を2017/10/31とし、除外する日付を「2017/10/04」「2017/10/09」「2017/10/10」と指定し、勤務日として「2017/10/28」(土)「2017/10/29」(日)を指定した場合
開始日から終了日までの勤務日数には、週末および指定された3休業日を含まず、特定営業日「2017/10/28」(土)、「2017/10/29」を含む場合は21日として計算します。
数値フィールドに適用し、パラメータでどの日と何日が週末であるかを指定すると、2つの日付間の全勤務日数が返されます。勤務日には土日祝日を含まない(ただし、指定された勤務日は含む)
関数 | 文法 |
---|---|
NETWORKDAYS.INTL | NETWORKDAYS.INTL(start_date,end_date,weekend_no,["holidays"], ["makeup_workdays"]) |
NETWORKDAYS.INTL の関数には、以下のパラメータが必要:
Start_date和End_date は、日付のギャップを計算するために必要である。Start_date は end_date よりも前、等しい、または後とすることができる。
Weekend_no Weekend_noはオプションで、週末が土日以外の場合は、以下の表を参照して、対応するWeekend番号を記入してください。
Holidays はオプションで、祝祭日など、勤務カレンダーから除外する1つまたは複数の日付のオプションリストです。 このリストは、日付のシリアル値を表す定数の配列である。
Makeup_workdays はオプションで、勤務カレンダーから含める1つ以上の日付(例:振替出勤日)のオプションリストです。 このリストは、日付のシリアル値を表す定数の配列である。
例:
数値フィールドを"NETWORKDAYS.INTL(E1,E2,11,['2017/06/16'])"数式に適用。
E1の日付値を2017/06/01、E2の日付値を2017/06/30とし、週末を日曜日の1日だけと指定し、集計しない日付を "2017/06/16 "と指定する。
開始日から終了日までの週末(日曜日のみ)と指定された「2017/06/16」を除く営業日数で、結果は25日間となります
Weekendパラメータ対応表:
Weekend数字 | 対応の週末日 |
---|---|
1又は省略 | 土曜日、日曜日 |
2 | 日曜日、月曜日 |
3 | 月曜日、火曜日 |
4 | 火曜日、水曜日 |
5 | 水曜日、木曜日 |
6 | 木曜日、金曜日 |
7 | 金曜日、土曜日 |
11 | 日曜日だけ |
12 | 月曜日だけ |
13 | 火曜日だけ |
14 | 水曜日だけ |
15 | 木曜日だけ |
16 | 金曜日だけ |
17 | 土曜日だけ |
以下、Ragicがサポートしている関数の一覧を掲載しますので、日付の関数について詳しくご覧ください。 これらの関数は大文字と小文字が区別されますご注意ください。
関数 | 概要 |
---|---|
SUM(value1,[value2],...) | これらのフィールド値の合計値を返す、また、value+value2+...という形式で示すことも可能です |
AVG(value1, value2,...) | 全てのフィールドの平均値を返す。この関数は子テーブルでも使用できますが、子テーブルの平均値は、子テーブルの1つのフィールド値だけでなく、すべてのフィールド値を含んでいます |
AVERAGE(value1, value2,...) | 全てのフィールドの平均値を返す。この関数は子テーブルでも使用できますが、子テーブルの平均値は、子テーブルの1つのフィールド値だけでなく、すべてのフィールド値を含んでいます |
MIN(value) | すべてのフィールド値のうち最小の数値を返す。この関数は、子テーブルでも使用できます |
MAX(value) | べてのフィールド値のうち最大の数値を返す。この関数は、子テーブルでも使用できます |
MODE.SNGL(value1,[value2],...) | すべてのフィールド値のうち、最も頻度の高い値を返す。この関数は、一般フィールド、子テーブル、グローバル定数も使用できます |
MODE.MULT(value1,[value2],...) | すべてのフィールド値のうち、最も頻度の高い値を返す。最頻値が複数ある場合、複数の結果を返すことができる。この関数は、一般フィールド、子テーブル、グローバル定数も使用できます |
ABS(value) | 絶対値を返す |
CEILING(value) | その値と同じかそれ以上の最も近い整数値を返す |
FLOOR(value) | その値と同じかそれ以下の最も近い整数値を返す |
ROUND(value) | 四捨五入後の最も近い整数値を返す |
ROUND(value,N) | 指定したNの桁数で四捨五入する |
ROUNDUP(value,N) | 指定したNの桁数で切り上げる |
ROUNDDOWN(value,N) | 指定したNの桁数で切り捨てる |
MROUND(value,multiple) | 指定したmultipleの倍数になるように四捨五入する |
SQRT(value) | 平方根を返す。 |
COUNT(value1,value2,...) | フィールドの値の総数を返す。一般フィールドで使用する場合、空白値は計算されないが、子テーブルフィールドで使用する場合、空白値は計算される |
LEFT(value,length) | 左端から何文字かまたは何バイトかを取り出す。長さが3の場合、左から3文字が取り出される |
RIGHT(value,length) | 右端から何文字かまたは何バイトかを取り出す。長さが3の場合、右から3文字が取り出される |
MID(value,start,[length]) | 指定した位置から何文字かまたは何バイトかを取り出す。最初の文字が0。例えば、フィールドA1の値がABCDで、MID(A1,1,2)で別のフィールドを設定した場合、結果はBCとなります |
FIND(find_text,within_text,[start_num]) | ある文字列の中から別の文字列を探し、最初の文字列の中のその文字列の開始位置を返す |
LEN(value) | 文字列の長さ(文字数)を取得する |
TODAY() | 現在の日付を送り返す。 毎日の関数再計算の参照フィールドとして使用するには、TODAY()の代わりにTODAYTZ()を使用する ことを推奨します |
TODAYTZ() | 会社設定に基づき、会社の時間帯で現在の日付を返す |
NOW() | 現在の日付と時刻を返す |
NOWTZ() | アカウント設定に基づき、会社の時間帯で現在の日付と時刻を返す |
EDATE(start_date, months) | 指定された時刻(start_date)の前後数ヶ月の日付を表す連続した数値を返す |
EOMONTH(start_date, months) | 指定された日付(start_date)の前後の数か月(months)の最終日を表す連続的の数値を返す |
YEAR() | 日付フィールドの年を返す |
MONTH() | 日付フィールドの月を返す |
DAY() | 日付フィールドの日を返す |
DATE(year,month,day) | 3 つの参照数値フィールドの値を組み合わせて、日付を返す。 誤りを防ぐため、年フィールドには4桁の値を使用してください |
WEEKDAY() | 一週の何日目を返送、1日目(日曜日)から7日目(土曜日)まで表示する |
PI() | 円周率を返す、約3.14159に相当 |
RAND() | 0 から 1 の間のランダム値を返す |
UPPER(value)/TOUPPERCASE(value) | 元の値を変えずに大文字で値を返す |
LOWER(value)/TOLOWERCASE(value) | 元の値を変えずに小文字で値を返す |
PROPER(value) | 頭文字を大文字に変換し、頭文字以外の文字を小文字に変換する |
SUBSTITUTE(text,old_text,new_text,[instance_num]) | 文字列の old_text 部分を new_text で置換する |
TEXT() | 形式コードを使用して、数値の表示方法を変更するための書式を適用します。 詳しくはこちら. |
POWER(value,power) | 二乗の値を返す |
MOD(value,divisor) | 値を除数で割った余りを返す。結果は除数と同じ符号を持つ |
GCD(value1,[value2],...) | これらの値の最大公約数を返す。最大公約数とは、これらの値を割ることができる最大の整数である |
LCM(value1,[value2],...) | これらの数値の最小公倍数(これらの数値が共有する正の整数の最小の整数倍)を返し、この式を分母の異なる分数の計算に役立てます |
FIRST(value) | 子テーブルの指定されたフィールドの最初のエントリーを返す |
FIRSTA(value) | 子テーブルの指定されたフィールドの最初の非空白値エントリーを返す |
LAST(value) | 子テーブルの指定されたフィールドの最後のエントリーを返す |
LASTA(value) | 子テーブルの指定されたフィールドの最後の非空白値エントリーを返す |
IF(value==condition,[value_if_true],[value_if_false]) | IF式は、指定だれた条件に合致すればTRUE、合致しなければFALSEを返す。詳細を見る |
IFS() | 複数の条件を満たすことを確認し、最初の TRUE 条件に対応する値を返す。詳細を見る |
LOOKUP(value,lookup_list,[result_list]) | lookup_listから値を検索し、result_listの対応位置に値を返す。詳細を見る |
AND(logical1, [logical2], ...) | すべての条件を満たす場合に TRUE を、1つ以上の条件を満たさない場合に FALSE を返す。詳細を見る |
OR(logical1, [logical2], ...) | いずれかの条件を満たしたときに TRUE を、いずれの条件も満たさなかったときに FALSE を返す。詳細を見る |
NOT(logical) | テスト条件が FALSE の場合は TRUE を、TRUE の場合は FALSE を返します。 詳細を見る |
COUNTIF(criterai_range,criteria, count_range) | 計算子テーブルの各カラムが判定基準を満たした回数の合計を返す。詳細を見る |
COUNTIFS(criteria_range1,criteria1,[criteria_range2,criteria2]...) | 追加範囲のうち、該当する基準を満たす値(回数)の合計を返す。詳細を見る |
SUMIF(range,criteria,[sum_range]) | 判定基準を満たした子テーブルの各列の値の合計を返す。詳細を見る |
SUMIFS(sum_range,criteria_range1,criteria1,[criteria_range2, criteria2],...) | 複数の判断基準を満たす各列の値の合計を計算し、返す。詳細を見る |
UPDATEIF(condition,value_if_true) | フィールドの値は、条件を満たしたときのみ更新される。詳細を見る |
REPT(value,number_times) | 指定回数繰り返した値を返す。 |
COUNTA(value) | 子テーブルの各列で、NULL値でない値の総数(回数)を返す。 |
SUBTABLEROW(value,nth_row) | 子テーブルで指定された数番目のデータの値を返す。一般的フィールドにのみ適用できます。 |
PREVIOUSROW(value) | 子テーブルの中に指定されたフィールドと前のデータ列の合計値を返す(データは順番に追加する必要があり、手動的の再計算はサポートされていません)。 |
WORKDAY(start_date,days,["holidays"], [makeup_workdays]) | 指定された日付(開始日)は、土日や指定された祝日(どの日が営業日か指定する)を含まない前後の営業日数分の日付を返す。詳細を見る |
WORKDAY.INTL(start_date,days,weekend_no,["holidays"], [makeup_workdays]) | パラメータで、どの日が何日目に週末になるかを指定し(どの日が営業日になるかを指定し)、代表日(開始日)の前後に指定した営業日数を返します。詳細を見る |
NETWORKDAYS(start_date,end_date,["holidays"], [makeup_workdays])) | start_date から end_date までの営業日のうち、休日(土日、指定休日)以外の日数および営業日として指定された日数を返す。詳細を見る |
NETWORKDAYS.INTL(start_date,end_date,weekend_no,["holidays"], [makeup_workdays]) | パラメータで、どの日が何日目に週末になるかを示し(どの日が営業日になるかを指定し)、2つの日付の間の全営業日の数を送り返す。詳細を見る |
CHAR(number) | 他の種類のコンピュータから取得したファイルのコードページ値を文字に変換するには、CHARを使用します。 例えば、CHAR(10)は改行を、CHAR(32)は空白を返す。 |
LARGE(arg, nth, ["arg2"]) | 指定された序数大小に対応する子テーブルの列の値を検索し、対象となる子テーブル列のデータのうち、指定された列の値を返す。例えば、LARGE(C1,1,D1)は、子テーブルデータのC1フィールドの最大値を検索し、同じ子テーブルデータのD1カラムの値を返します。この関数には、最頻値の概念はありません。つまり、同じ大きさの値があれば、順にソートされ、大きさが等しいとは判定されないのです。子テーブルの最小値を返す必要がある場合は、COUNT()を組み合わせて使用することができます。 例えば、LARGE(C1,COUNT(C1),D1)は、子テーブルのC1列の最小値を検索し、同じ列のD1の値を返す。 |
UNIQUE() | 参照子テーブルの列の中で、重複していない全てのフィールド値を表示する。詳細を見る |
UNIQUE().length | 参照子テーブルフィールドの非反復値の数を計算する。詳細を見る |
VLOOKUP() | 指定された条件に合致する子テーブル内の値を返す。詳細を見る |
MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) | 指定されたフィールド範囲の最大値を、指定された条件または基準に基づいて返す。 |
MINIFS(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) | 指定されたフィールド範囲の最小値を、指定された条件または基準に基づいて返す。 |
SPELLNUMBER(number, [lang], [option]) | 正式文書や場合によっては、アラビア数字が漢数字に置き換えられることがあります。例: 「二百」で200を表す。
要求があれば、SPELLNUMBER式で変換することができます。 詳しくはこちらの記事をご覧ください。 |
ISOWEEKNUM(date) | 指定された日付はその年の何週目、月曜日は週の初日として設定されている。 |
WEEKNUM(serial_number,[return_type]) | 指定された日付はその年の何週目、週の初日は自分で設定できる。詳しくはこちらの記事をご覧ください。。 |
DATEVALUE(date_text, date_format) | 日付(時刻)フィールドに適用し、参照文字列を日付(時刻)値に変換する。"date_text "は固定の日付文字列または参照文字列フィールド、"date_format "は参照日付文字列形式を示す。例えば、A1の文字列の値が「2019/02/01」で、これを日付フィールドに変換したい場合、DATEVALUE(A1, "yyyy/MM/dd")という数式を日付フィールドに適用すると、変換された結果が得られます。 |
HOUR() | この関数は、3つの使い方をサポートします: 1. パラメータを0-1に持ち込み、24時間単位の割合を返す。例:HOUR(0.5)=12。 2. パラメータを日付フィールドに持ち込み、フィールドの時間単位値を返す。例:A9のフィールド値は18:11:19、HOUR(A9)=18。 3. パラメータを日付の文字列に持ち込み、文字列内の時間単位値を返す。例:HOUR("2020/10/13 17:34:56")=17。 |
MINUTE() | この関数は、3つの使い方をサポートします: 1. パラメータを0-1に持ち込み、ˊ60分単位の割合を返す。例:MINUTE(0.5)=30。 2. パラメータを日付フィールドに持ち込み、フィールドの分単位値を返す。例:A9のフィールド值は18:11:19,MINUTE(A9)=11。 3. パラメータを日付の文字列に持ち込み、文字列内の分単位値を返す。例:MINUTE("2020/10/13 17:34:56")=34。 |
SECOND() | この関数は、3つの使い方をサポートします: 1. パラメータを0-1に持ち込み、ˊ60秒単位の割合を返す。例:SECOND(0.75)=45。 2. パラメータを日付フィールドに持ち込み、フィールドの秒単位値を返す。例:A9のフィールド値は18:11:19,SECOND(A9)=19。 3. パラメータを日付の文字列に持ち込み、文字列内の秒単位値を返す。例:SECOND("2020/10/13 17:34:56")=56。 |
TIME(hour, minute, second) | 特定時間の小数を返す、返される小数は 0 から 0.99988426 までの値で、0:00:00 から 23:59:59 までの時間を表しています。
Hourは時間を表し、0から32767の範囲とする。 23以上の値は24で割り、その余りを時間値とする。 例:TIME(27,0,0) = TIME(3,0,0) = 0.125 または午前3時。 Minute は分を表し、0から32767の範囲とする。 59以上の数値は、時・分に変換されます。例:TIME(0,750,0) = TIME(12,30,0) = 0.520833 または 12:30 PM。 Second は秒を表し、0から32767の範囲とする。 59以上の数値は、時・分・秒に変換されます。例:TIME(0,0,2000) = TIME(0,33,22) = 0.023148 または 12:33:20 AM。 |
ISBLANK() | 参照フィールドが空白値かどうかを確認。指定されたフィールドへの直接参照若しくは条件式で使える。例:ISBLANK(A2) や IF(ISBLANK(A2), 'Y', 'N')。 |
PMT(rate, nper, pv, [fv], [type]) | この関数は、ローンの各分割払いで投資する金額を計算できます。
rate (必須):利率 |
PRODUCT() | 指定されたフィールドのすべての値が乗算され、空白値および数値以外の値は無視されます。指定できるのは一般的なフィールドだけではなく、参照子テーブルフィールドは、フィールド内のすべての値を乗算することができる。 |
TRIM() | フィールド値の先頭と末尾にある全角空白と半角空白を削除し、その間に連続した全角空白と半角空白がある場合は、最初の空白のみを残す。 例:TRIM(" a c")は "a c"(半a全半c,a全c のみ保留する)を取得する。 |
INCLUDES_ALL(複数選択/複数画像/複数ファイルフィールド, value1, value2,...) | 全ての選択肢値の中に、リストされた値 (任意のフィールドタイプや値が可能) をそれぞれ含んでいる場合、true が返されます。使い方の例については、こちらの記事を参照下さい。 |
NOT_INCLUDES_ALL(複数選択/複数画像/複数ファイルフィールド, value1, value2,..) | 選択肢値の中に、リストされた各値(任意のフィールドタイプや値が可能)を含むものがなければ、true が返され、その結果は INCLUDES_ANY の逆と等しい。使い方の例については、こちらの記事を参照下さい。 |
INCLUDES_ANY(複数選択/複数画像/複数ファイルフィールド, value1, value2,...) | 全ての選択肢値の中に、 リストされた値 (任意のフィールドタイプや値が可能)のうちの少なくとも1つを含んでいる場合に true を返します。使い方の例については、こちらの記事を参照下さい。 |
NOT_INCLUDES_ANY(複数選択/複数画像/複数ファイルフィールド, value1, value2,...) | 全ての選択肢値の中に、リストされた値 (任意のフィールドタイプや値が可能)のいずれか 1つを含まない場合は true を返し、これは INCLUDES_ALL の逆と等しい。使い方の例については、こちらの記事を参照下さい。 |
ITEMS_COUNT(複数選択/複数画像/複数ファイルフィールド) | 複数選択フィールドの値の数を返します。 例えば、複数選択フィールドで3つの選択肢が選択されている場合は3が返され、ファイルアップロードフィールドで2つのファイルがある場合は2が返されます。 |
文字列数式の利用方法は非常に簡単で、C1の値がMichael、C2の値がScottであれば、C1+C2は "Michael Scott "となる。
文字列関数の応用については、文字列関数の説明をご覧ください。
Ragicは条件式サポートしています。 これらの計算式は大文字と小文字を区別し、フィールドの種類によって計算方法が変わる場合があることにご注意ください。
また、計算式の条件参照フィールドの後ろに.RAWを追加する必要があるの二つ場合にご注意してください:
1.条件式の条件が二つのフィールドを参照し、二つのフィールドの値が等しいかどうかを演算子"="で判定する場合、条件の部分で、二つの参照フィールドの末尾に.RAWを付加します。参照するフィールドが1つだけで、固定値と等しいかどうかを演算子"="で判定する場合、付加する必要はない。
2. 数式を適用するフィールドが数値フィールドの場合、数値計算を行う。ただし、条件が参照文字列フィールド(テキスト、オプション、日付など)であり、演算子「=」で固定文字列に相当するものを判断する場合は、条件を設定した.RAWに参照文字列フィールドを追加する必要がある。
.RAWを追加する場合の詳細は、このセクションを参照してください。
日付欄は日数で計算されます。
また、複数階層の条件判定を利用してIF式を書くことも可能。
IF式は、ある条件を満たせばTRUE、満たさなければFALSEというように、条件に応じて値を返す。
関数 | 文法 |
---|---|
IF | IF(value==condition,[value_if_true],[value_if_false]) |
例
簡単な例: IF(A2==10,10,0)
A2が10に等しい場合、このフィールドの値は10となり、A2が他の値の場合、このフィールドの値は0となる。
一つの条件値で設定: IF(A1==1,'true','false')
このフィールド A1 の値が 1 の場合、このフィールドの値は "true" となる。 A1 の値が 1 以外の場合は、このフィールドは "false" 値となる。
実際の応用例: IF(A2>=60,'yes','no')
フィールドA1の値が60以上の場合、このフィールドの値「シニア割引の条件を満たしていますか」は "yes" となり、それ以外の場合、このフィールドの値は "no" となる。
備考
RagicはまだIF関数の古い文法をサポートしています。
Value=='condition'?'[value_if_true]':'[value_if_false]'
例: A1=='open'?'O':'C'
A1は"open"の場合、Oが表示され、"open"でない場合はCが表示されます。
2つのフィールドが等しいかどうかを「=」演算子で判断する条件の場合、条件を記入する2つの参照フィールドの末尾に.RAWを記入する。
文法 |
---|
IF(field1.RAW=field2.RAW,[value_if_true],[value_if_false]) |
例
簡単の例1: IF(A1.RAW=A2.RAW,1,0)
フィールドA1の値がフィールドA2の値と等しい場合、1を返し、そうでない場合、0を返す。
簡単の例2: IF(A1.RAW=A2.RAW,'Open','Closed')
A1のフィールド値がA2のフィールド値と等しい場合、"Open "を、そうでない場合、"Closed "を返す。
文法 |
---|
IF(string_field1.RAW="string",[numeric_value_if_true],[numeric_value_if_false]) |
例
簡単の例1: IF(A1.RAW="Yes",1,0)
フィールド A1 の値が文字列 "Yes" に等しい場合、数値 1 を返し、そうでない場合、数値 0 を返す。
数字フィールドだけを参照し、固定値と等しいかどうかを演算子「=」で判断する場合は、「.RAW」を付ける必要はない。
例
簡単の例:IF(A1=1,"YES","NO")
フィールドA1の値が1に等しい場合、"YES "を返し、そうでない場合、"NO "を返す。
例:数式が IF(A8.RAW='', "TRUE", "FALSE") で、列が空白値かどうか判断する必要があり、その列の値が 0 である可能性がある場合、.RAW を追加する必要があります。
例:A1「番号」は自由入力フィールドで値は10001、A2「会員ID」はリンクフィールドで、数式でA2の値を持ってきたい場合、この場合、A2の数式を正しく引き出すために、IF(A1!="",A1.RAW)とする必要があります。
LEFT()、RIGHT()、MID()などの IF() 式で他のフィールドから文字列を取り込む場合、システムが正しく取り込む前にフィールドを文字列に変換しておく必要があります。 変換は、参照フィールドに 「+""」を付加することで行われます。
例
A5フィールドの最初の2つの文字を参照して判定したい場合、以下の数式を使ってください:
IF(A1="Yes",A5,LEFT(A5+"",2))
つまり、フィールドA1がYesの場合は、フィールドA5の値が持ち込まれ、フィールドA1がYesでない場合は、フィールドA5の最初の2文字が表示されるのである。
現在、Ragicはシステムの制限上、IF()に直接TODAY()やNOW()を追加することをサポートしていないため、TODAY()やNOW()を計算するためには新しいフィールドを追加しなければならない。
例:
A1を基準にして、データがまだ有効かどうかを判断するとして、A2フィールドにTODAY()を配置し、以下の数式を設定:
IF(A1>A2,"Valid","Expired")
つまり、フィールドA1の値がTODAY()よりも大きい場合は「Valid」と表示され、フィールドA1の値がTODAY()よりも小さい場合は「Expired」と表示される。
あるいは、A1とTODAY()を比較したいとすると、A2フィールドにA1-TODAY()などの数式を入れ、次の式を使います:
IF(A2>0,"Valid","Expired")
つまり、フィールドA2の値が0より大きい場合は「Valid」、フィールドA1の値がTODAY()よりも小さい場合は「Expired」と表示されるのである。
RagicデータベースのTODAY()やNOW()は毎日自動的に再計算されないので、古いデータのTODAY()やNOW()フィールドは、最後にデータが更新された時刻を表示することに注意することが重要です。TODAY()やNOW()を毎日自動的に再計算して最新のデータ状態を表示させたい場合は、毎日数式を再計算するプログラミングをします。
1.IFを日付以外のフィールドに適用して、日付フィールドの大小関係を比較することができる
例えば、A1とA2は日付フィールドで、A2にはTODAY()、A4にはIF(A1>A2, "期限内", "期限切れ") が設定されます。
2. 日付以外のフィールドでIFを使用して日付フィールドの値を計算することはできませんので、別途数値フィールドを作成して加減算する必要があります
上記と同じですが、A4の計算式がIF(A1-1>A2, "期限内, "期限切れ")に変更され、間違って実行されます。 この場合、C1とC2の2つの数値フィールドを追加作成し、C1をA1-1に、C2をA2に適用し、A4の式をIF(C1>C2, "期限内", "期限切れ") に変更する必要があります。
また、LOOKUP関数を使って、条件を付けたいフィールドの特殊条件ごとに処理を追加することも可能です。
関数 | 文法 |
---|---|
LOOKUP | LOOKUP(value,[lookup_list],[result_list]) |
lookup_listから値を検索し、result_listの位置に値を返す。
valueは、lookup_list で検索された値である。
lookup_list は、例えば [0,100,500] のような配列で、LOOKUP 関数はこの中から値を探します。
result_list はオプションで、lookup_list と同じで、例えば ['Small', 'Medium', 'Large'] のようになります。 result_list のパラメータが省略された場合、LOOKUP 関数は lookup_list の値を返します。LOOKUP関数が完全に一致する値を見つけられなかった場合、result_listの中でその値以下の最大の値を選択して返します。 もし、この値がresult_listのすべての値より小さければ、LOOKUP関数は空の条件を返します。
例
簡単の例: LOOKUP(A1,[0,45,65],['Small','Medium','Large'])
フィールドA1の値が0~44の場合はsmall、45~64の場合はMedium、65以上の場合はLargeになります。
複数フィールドの例: LOOKUP(A1,[0,45,65],[A3+A4,B5,B6])
A1が0~44の場合はA3+A4、45~64の場合はB5、65以上の場合はB6になります。
すべての条件を満たす場合に TRUE を、1つ以上の条件を満たさない場合に FALSE を返す。
関数 | 文法 |
---|---|
AND | AND(logical1,[logical2],...) |
AND関数には、以下のパラメータが必要です:
logical1 は、戻り値が TRUE か FALSE かを決定する最初の条件として必要です。
logical2 が非必須で、他の条件も判定時に TRUE または FALSE の返り値に影響する。
いずれかの条件を満たしたときに TRUE を、いずれの条件も満たさなかったときに FALSE を返します。
関数 | 文法 |
---|---|
OR | OR(logical1,[logical2],...) |
OR関数には、以下のパラメータが必要です
logical1が必要で、logical2などの他の論理条件は必要ない。 logical1は、TRUEまたはFALSEの戻り値を必要とする最初の条件である。
テスト条件が FALSE の場合は TRUE を、TRUE の場合は FALSE を返します。
関数 | 文法 |
---|---|
NOT | NOT(logical) |
例
NOT(A2>10)
参照フィールドA2の値が10以下であれば、システムは "true "を返し、そうでなければ "false "を返します。
COUNTIFを使用して、判定基準を満たす子テーブルのフィールドの総数を計算します。 例えば、レシートにある特定商品の合計枚数を計算する。
関数 | 文法 |
---|---|
COUNTIF | COUNTIF(criteria_range,criteria) |
COUNTIF関数には、以下のパラメータがあります:
criteria_range が必要です。 範囲は子テーブルのセルである、値が条件を満たしていることを確認。
criteriaが必要です。基準(criteria)は、基準範圍(criteria_range)内のどのセルを追加するかを定義する。これは、数値、式、別のフィールドへの参照、またはテキスト文字列で、どの値を追加するかを決定します。以下の表を参照してください:
応用 | 式入力の例 |
---|---|
参照数字 | "8" |
数字比較 | "> 8"、"< 8"、"!= 8" |
参照文字列 | "apple" |
文字列の不等式 | "!='apple'"(外側と内側で異なる引用符を使用する。例えば、外側は二重引用符、内側は一重引用符で囲む) |
参照子テーブル・フィールド | A4 (二重引用符や"="をつける必要はない。フィールド名を書くだけでいい) |
子テーブル・フィールドとの比較 | "> A4"、"< A4"、"!=A4" |
COUNTIF は単一の子テーブルしか参照できません。また、独立フィールドに設定する必要があります。
COUNTIF は単一の基準のみを使用する。 複数の基準を使用したい場合はCOUNTIFSを使用してください。
例:
フィールドA9に入力された数式COUNTIF(A4,'apple')は、子テーブル列A4に商品名appleが含まれるの行数を返します。
関数 | 文法 |
---|---|
COUNTIFS | COUNTIFS(criteria_range1,criteria1,[criteria_range2,criteria2]...) |
COUNTIFS関数には、以下のパラメータがあります:
criteria_range1 が必要です。この範囲(range)は、指定された条件に適合する値をチェックする子テーブルフィールドでなければならない。
criteria1が必要です。基準(criteria)は、基準範圍(criteria_range1)内のどのセルを追加するかを定義する。これは、数値、式、別のフィールドへの参照、またはテキスト文字列で、どの値を追加するかを決定します。以下の表を参照してください:
応用 | 式入力の例 |
---|---|
参照数字 | "8" |
数字比較 | "> 8"、"< 8"、"!= 8" |
参照文字列 | "apple" |
文字列の不等式 | "!='apple'"(外側と内側で異なる引用符を使用する。例えば、外側は二重引用符、内側は一重引用符で囲む) |
参照子テーブル・フィールド | A4 (二重引用符や"="をつける必要はない。フィールド名を書くだけでいい) |
子テーブル・フィールドとの比較 | "> A4"、"< A4"、"!=A4" |
criteria_range2, criteria2,...はオプションです。 それぞれの条件を満たす付加範囲内の値を算出する。
COUNTIFS は単一の子テーブルしか参照できません。また、独立フィールドに設定する必要があります。
SUMIFを使用して、子テーブルの各列の値が判定基準を満たす値の合計を計算します。 例えば、レシートに記載されている特定の項目の合計金額を調べる。
関数 | 文法 |
---|---|
SUMIF | SUMIF(range,criteria[sum_range]) |
SUMIF 関数には、以下のパラメータがあります:
range は必要です。 rangeは子テーブルのフィールドであり、値が該当する条件を満たしていることを確認する必要があります。
criteria が必要です。この基準(critaria)によって、範圍(range)内のどのセルが追加されるかが決まります。 これは、数値、式、別のフィールドへの参照、またはテキスト文字列で、どの値を追加するかを決定します。以下の表を参照してください:
応用 | 式入力の例 |
---|---|
参照数字 | "8" |
数字比較 | "> 8"、"< 8"、"!= 8" |
参照文字列 | "apple" |
文字列の不等式 | "!='apple'"(外側と内側で異なる引用符を使用する。例えば、外側は二重引用符、内側は一重引用符で囲む) |
参照子テーブル・フィールド | A4 (二重引用符や"="をつける必要はない。フィールド名を書くだけでいい) |
子テーブル・フィールドとの比較 | "> A4"、"< A4"、"!=A4" |
sum_rangeはオプションである。 rangeパラメータで指定したセル以外を合計する場合、実際に合計するセルを指定します。sum_rangeが省略された場合、rangeで指定されたセルが合計される(つまり、基準が適用されたのと同じセルが合計される)。
SUMIF は単一の子テーブルしか参照できません。また、独立フィールドに設定する必要があります。
SUMIF に設定できる基準は1つだけです。 複数の基準がある場合は、SUMIFSを使用してください。
例:
A9に設定した数式SUMIF(A4,'apple',B4)は、A4フィールド下の商品名がappleであれば、子テーブルの各行のB4値の合計を返す。
複数の判定基準を満たす子テーブルの各フィールドの合計値を計算するには、SUMIFSを使用します。 例えば、レシート上の特定の在庫場所にある特定の商品の合計金額を計算する。
関数 | 文法 |
---|---|
SUMIFS | SUMIFS(sum_range,criteria_range1,criteria1,criteria_range2, criteria2,...) |
SUMIFS 関数には、以下のパラメータがあります:
sum_range が必要です。 この範囲(range)は、指定された条件に適合する値をチェックする子テーブルフィールドでなければならない。
criteria_range1は必須。criteria_range1と criteria1は範囲内の特定の検索条件を設定する。 範囲内の項目が見つかると、それに対応する値がsum_rangeに加えられる。
criteria1が必要です。 基準(criteria)は、基準範圍(criteria_range1)内のどのセルを追加するかを定義する。これは、数値、式、別のフィールドへの参照、またはテキスト文字列で、どの値を追加するかを決定します。以下の表を参照してください:
応用 | 式入力の例 |
---|---|
参照数字 | "8" |
数字比較 | "> 8"、"< 8"、"!= 8" |
参照文字列 | "apple" |
文字列の不等式 | "!='apple'"(外側と内側で異なる引用符を使用する。例えば、外側は二重引用符、内側は一重引用符で囲む) |
参照子テーブル・フィールド | A4 (二重引用符や"="をつける必要はない。フィールド名を書くだけでいい) |
子テーブル・フィールドとの比較 | "> A4"、"< A4"、"!=A4" |
注意すべきは、SUMIFSでは、基準を異なるフィールドに配置する必要があることです。同じフィールドで、Aフィールドと等しいやBフィールドと等しいときに合計するなどの条件を追加する場合は、複数のSUMIF()を使用して合計する必要があります。
例:
A52で数式SUMIFS(C45, B45, " > A50 ", B45, " < a51") を設定すると、子テーブルの注文日(b45)が開始日(a50)以上、終了日(a51)未満のデータについて金額を合計して日付範囲内の注文合計金額を算出します。
UPDATEIF条件式を使用すると、条件がTRUEでない場合はフィールドの値を元のまま保持し、条件がTRUEである場合にのみフィールドの値を更新することができます。
関数 | 文法 |
---|---|
UPDATEIF | UPDATEIF(条件、条件が成立時のフィールド値) |
例
基本例: UPDATEIF(A2==10,10)
A2 の値が 10 であれば、数式を適用したフィールドの値が 10 に更新される。 A2 の値が 10 でない場合、計算式を適用したフィールドは元の値を保持し、変更されない。
実用例: UPDATEIF(A2=='同住家地址',A1)
A2フィールドの値が「同じ自宅住所」の場合、このフィールド(配達先住所)の値はA1(自宅住所)の値となり、それ以外の場合は元のフィールド値(例:空または以前に保存した値)と同じとなります。
複数の条件がある場合、条件式は重ねて書くことができます。
例:
IF(A1==1,'Bad',IF(A1==2,'Good',IF(A1==3,'Excellent','No Valid Score')))
この上の式は、以下を表す:
A1の値が1の場合、返り値は "Bad"
A1の値が2の場合、返り値は "Good"
A1の値が3の場合、返り値は "Excellent "
A1の値が上記以外の場合、結果は "No Valid Score "となる。
例:
IF( AND(A1.RAW=='YES',A2.RAW=='Jimmy'), C3*C7, IF( AND(A1.RAW=='YES',A2.RAW=='John'), C3*C8, IF( AND(A1.RAW=='YES',A2.RAW=='Jane'), C3*C9, C3*C10 ) ) )
この上の式は、以下を表す。
A1の値が "YES "で、A2の値が "Jimmy "の場合、戻り値はC3*C7
A1の値が "YES "で、A2の値が "John "の場合、戻り値はC3*C8
A1の値が "YES "で、A2の値が "Jane "の場合、結果はC3*C9
A1 の値が上記以外の場合、結果は C3*C10 となる。
上記の数式以外、IFS()を使って複数条件の条件式を書くこともできます
関数 | 文法 |
---|---|
IFS() | IFS(value=condition1,value_if_true1,value=condition2,value_if_true2,...,true,default value) |
IFS 関数には、以下のパラメータがあります:
value=condition1 が必要で、これは最初にチェックされる条件
value_if_true1 は必要で、これは最初の条件が満たされたときに返される値
value=condition2 が必要で、これはチェックされるの二つ目の条件
value_if_true2 は必要で、これは二つ目の条件が満たされたときに返される値
* 検査条件は最低2セット、実需に応じて増設可能
true はオプションで、デフォルト値を設定する必要がある場合は入力が必要ですが、不要な場合は省略可能です
default value はオプションで、全部のチェック条件が満たされない場合に返されるデフォルト値
例:
IFS(A1=1,"Bad",A1=2,"Good",A1=3,"Excellent",true,"No Valid Score")
また、上記の式は、以下を意味します。
A1の値が1の場合、返り値は "Bad"
A1の値が2の場合、返り値は "Good"
A1の値が3の場合、返り値は "Excellent "
A1 の値が上記以外の場合、結果は「No Valid Score」となる。
INCLUDES_ALLを例にとってみよう:
まずD2にINCLUDES_ALL(D1,A1,A2,B4)を適用する。
A1 = 自由入力フィールド,値は A
A2 = 複数選択肢フィールド、値は B、C
B4 = 子テーブルの自由入力フィールドには2つの値があり、1つ目は "D"、2つ目は "E "
D1 = 複数選択肢フィールド、値は A、B、C、D、E
すると、D2は "true "を返す。
データベースにデータを入力すると、入力した式に従ってデータが計算され、一度保存するとこの値は保存され、変更されることはありません。
つまり、デザインモードで数式を変更しても、すでに保存されているデータが新しい数式に従って再計算されることはありません。
その理由は、以前に古い数式から計算したデータはまだ有効であり、計算式を更新したからといって自動的に変更されることはないはずだからです。
例えば、ある税金の申告書があり、最近税率が上がったので計算式を変更した場合、以前保存されていた税金の情報は、そのまま古い税率で計算されるはずです。
ただし、場合によっては、古いデータをすべて最新の数式で再計算する必要があるかもしれません。フォームページのデザインモードで再計算したい数式のフィールドをクリックすると、左の関数で以下の2つのオプションがあります。 すべてのデータを新しい数式で更新するか、すべてのデータをすべての新しい数式で更新できるようにするか(複数の数式を更新した場合)です。
デザインモードで数式を修正または追加する場合は、数式で再計算する前に、まずデザインを保存してください!
また、数式や数式中の変数を頻繁に変更する場合は、毎日で数式を再計算するプログラムを作成することもできます。
データの入力・保存時に、関連リンクのあるシートの数式を再計算したい場合、フォームページのデザインモード > 左左側ツールバーのフォーム設定 > フォーム設定 保存時に、元シートの数式を全部再計算(デフォルトでチェックが入っています)または関連シートの数式を全部再計算のボックスにチェックを入れてください。。
元シートと関連シートの説明は、以下の例を参照してください:
親シート:A、BはCの親シートである。 子テーブルから新しいシートを作成をしたシートは、新しいシートの親シートであり、他のフォームからリンクを表示を持つシートは、他のシートの親シートである。
関連シート:BとCはAの関連シートであり、AとCはBの関連シートである。 2つのシートがマルチシートでなく、同じ子テーブルを共有している場合、それらは関連シートであり、子テーブルによって生成される新しいシートもそれらの関連シートである。
注:再計算するデータがシステムの制限値を超えている場合、再計算は自動的にスキップされます。
関数はテキスト記述フィールドでも使用できますが、このフィールドには計算結果のみが表示され、その値はシステムには保存されません。
これは、フォームページに入るたびに、数式の再計算結果を即時に確認する必要がある場合に役立ちます。BBCodes の[formulas]を利用すると便利です。
例:誕生日をもとに今日の年齢を計算したい場合は、テキストフィールドに[formula](TODAY() - A1)/365.25[/formula] と記述し、今日の日付をもとに年齢が再計算されます。
Ragicがサポートする数学記号については、こちらの記事をご覧ください。
サポートされていない数式を使用する必要がある場合は、Ragic Supportにご連絡ください。