レコード内に
・日付
・金額
の項目のテーブルを設置しており、
日付フィールドに入力されている○/○/○〜○/○/○の期間内の金額合計を計算フィールドで表示したいのですが、
これは実現可能でしょうか?
レコード内に
・日付
・金額
の項目のテーブルを設置しており、
日付フィールドに入力されている○/○/○〜○/○/○の期間内の金額合計を計算フィールドで表示したいのですが、
これは実現可能でしょうか?
山下さん、こんにちは。プロジェクト・アスノートの松田です。
SUM関数の中で、IF関数が使えないので、直接計算フィールドで計算はできません。
工夫するとしたら、
テーブルの各行に、IF関数を用いて対象となる日付期間の小計を出すフィールドを設置し
(期間内なら金額、期間外なら0)
その小計フィールドを計算フィールドでSUM関数で集計する、という方法であれば可能だと思います。
松田様
早急のご回答ありがとうございます。
当方、素人なもので申し訳ございません。
>テーブルの各行に、IF関数を用いて対象となる日付期間の小計を出すフィールドを設置し
>(期間内なら金額、期間外なら0)
小計フィールドに入れる計算式(IF関数)はどのように記述したら良いでしょうか?
テーブルに2つの計算フィールドの追加が必要です。
例)
計算フィールド1(フィールドコード:計算1)
計算式: DATE_FORMAT(日付, “YYYYMMdd”, “Asia/Tokyo”)
やっていること: 日付を数値に変換しています。
計算フィールド2(フィールドコード:小計)
計算式: IF(AND(YYYYMMDD >= 20200501, YYYYMMDD <= 20200531), 数値, 0)
やっていること、数値の大小比較で日付範囲を判定し、OKなら数値を、範囲外なら0
範囲を指定する日付を可変にしたい場合は、数値のところを
別に日付フィールド2つ、それぞれを数値に変換するための計算フィールドを設置し、
そのフィールドコードに置き換えてください。
この小計フィールドをテーブル外のSUM関数で集計
という感じでしょうか。
関数については、ヘルプで勉強してください。
松田様
丁寧なご回答ありがとうございます。
やってみたのですが、
計算フィールド2(フィールドコード:小計)
計算式: IF(AND(YYYYMMDD >= 20200501, YYYYMMDD <= 20200531), 数値, 0)
この部分を設定したところ「計算式に含まれるフィールドコードが存在しない、または形式が正しくありません。」のエラーが出てしまいます。
このまま計算式に入れてもダメなのでしょうか?
また、この計算式ですと、合計で出したい「金額」部分の数値はどのフィールドに表示されるのでしょうか?
松田様
度々申し訳ございません。
IF(AND(計算1>=20200501, 計算1<=20200531), 金額, 0)
上記の計算式に修正したところ小計に金額が反映しました!
お手数おかけしてすみませんでした。
ありがとうございました!