本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。
本ブログでは新UI画面で内容をまとめています。
新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

まずはじめに
- 入力日などの日付をフラグとして任意の期間でデータを抽出したい人
- 先週分、先月分など表示されるデータが自動で更新される設定をしたい人
- 先週や今週といった週単位の抽出方法(EOWEEK()関数)
- 先月や今月といった月単位の抽出方法(EOMONTH()関数)
- 特定の期間のデータをCSVファイルに落とす方法
今回の記事はスライス機能の応用として、データテーブルに存在する”日付”をフラグに任意の期間でデータを抽出する方法についてまとめています。
こちらの記事でスライス機能の基礎を学んでいただき、本記事の内容をマスターしていただければAppSheetでのスライス機能はバッチリです!(^^)
それでは勉強していきましょう!
参照データについて

下の写真は実際に検証に用いたデータテーブルです。
ブログ記事の内容をイメージしやすくするようにダミーデータを入力しています。

大事なのは日付カラムです。あとはなんでもいいです。
任意の期間でデータを抽出する方法

任意の期間でデータを抽出する方法で最も手っ取り早いのは、検索条件で検索期間を選択することです。
具体的な手順は、以下を参考にしてください(^^)

日付のデータタイプをDateにすることで”いつからいつまで”の期間を指定することが可能となります。

Other PropertiesにあるSearchableにチェックが入っていることを確認します。
ここにチェックが入っているカラムが後述する検索の対象になります(^^)
BehaviorペインのActionsタブから新規でアクションボタンを作成します。

赤枠で囲った設定を参考に、CSVエクスポートのアクションボタンを作成します。
UXペインのViewsタブから新規でTable Viewを作成します。

CSVエクスポートのアクションボタンについては、以下の設定で使用するのが無難です(^^)
- ActionのPositionは Primary
- ViewのView typeは Table
CSVエクスポートの検証

それでは任意の選択期間で必要なデータが抽出できるか確認してみましょう!
今回は日付と生産工場に注目してデータを抽出してみたいと思います(^^)


出現したフィルターアイコンをクリックします。

フィルター条件のポップアップが表示します。

日付の項目をクリックし、開始日(Start date)と終了日(End date)の日付を入力

データタイプがenumである場合は検索は選択式になり、複数選択も可能


サクセスの画面が出たら無事にデータがエクスポートされ、ダウンロードファイルにデータが保存されます
これで任意の条件でデータを抽出する方法は完了です。お疲れさまでした(^^)

CSVに関する参考記事です
CSVエクスポートするときの注意点を学べます(^^)
【確認が必要!】CSVエクスポートの注意点
動的に抽出期間を変更する方法

続いて、登録されたデータにおいて動的に抽出する期間を変更する方法を説明します。
これを解決する方法として以下の関数や設定を用います(^^)
- AND()関数、EOWEEK()関数、EOMONTH()関数
- スライス設定
まずは月単位の表示の設定をしてみましょう!
EOMONTH()関数
EOMONTH(イーオーマンス)はend of monthの略称です。
直訳で月の終わりなので、文字どおり月末日を取得する関数です。
下のイメージ図を参照すると分かりやすいです(^^)

EOMONTH()関数に値を送ったときの返り値を表にまとめました。
関数の入力値 | 返り値 | 備考 |
---|---|---|
EOMONTH( “2022/6/2” , 0) | 2022/6/30 | 具体的に入力した月の月末日 |
EOMONTH(TODAY(),0) | 2022/5/31 | TODAY()の月末日 |
EOMONTH(TODAY(),-1) | 2022/4/30 | TODAY()から1か月前の月末日 |
EOMONTH(TODAY(),-2) | 2022/3/31 | TODAY()から2か月前の月末日 |
EOMONTH(TODAY(),-2)+1 | 2022/4/1 | TODAY()から2か月前の月末日に1日足す つまり1か月前の月初日 |
さらに、このEOMONTH()関数の返り値をAND()関数で繋ぐと狙った期間のデータを抽出することが可能です。
入力する関数の条件式 | 返り値 | 備考 |
---|---|---|
AND([日付]>=EOMONTH(TODAY(),-2)+1, [日付]<=EOMONTH(TODAY(),-1)) | 2022/4/1〜2022/4/30 | 先月分を抽出する条件式 |
AND([日付]>=EOMONTH(TODAY(),-1)+1, [日付]<=EOMONTH(TODAY(),0)) | 2022/5/1〜2022/5/31 | 今月分を抽出する条件式 |
AND([日付]>=EOMONTH(TODAY(),-3)+1, [日付]<=EOMONTH(TODAY(),0)) | 2022/3/1〜2022/5/31 | 直近3か月を抽出する条件式 |
EOMONTH()関数を使った汎用性の高い設定となる構文なので、ぜひ覚えておきましょう(^^)
次は週単位での表示設定をしてみましょう!
EOWEEK()関数
EOWEEK(イーオーウィーク)はend of weekの略称です。
直訳で週の終わりなので、文字どおり週末日を取得する関数です。
下のイメージ図を参照すると分かりやすいです(^^)

9月のカレンダーを例に考えてみたいと思います。
TODAY() = “2022/9/21” とした場合のEOWEEK()関数への入力値とその返り値をまとめました。

関数の入力値 | 返り値 | 備考 |
---|---|---|
EOWEEK(TODAY()) | 2022/9/24 | 今週の土曜日 |
(EOWEEK(TODAY())+2) | 2022/9/26 | 来週の月曜日 |
(EOWEEK(TODAY())+6) | 2022/9/30 | 来週の金曜日 |
(EOWEEK(TODAY())-12) | 2022/9/12 | 先週の月曜日 |
(EOWEEK(TODAY())-8) | 2022/9/16 | 先週の金曜日 |
EOWEEK()関数は、括弧の中にTODAY()関数もしくはDateタイプのカラム値を送り、その日付が存在する土曜日の値を得ます。その日を基準に何日戻したいか、または進めたいか?
こんなイメージで考えるとイメージしやすいと思います(^^)
さらに、このEOWEEK()関数の返り値をAND()関数で繋ぐと狙った期間のデータを抽出することが可能です。
入力する関数の条件式 | 返り値 | 備考 |
---|---|---|
AND([日付]>=(EOWEEK(TODAY())-5), [日付]<=(EOWEEK(TODAY())-1)) | 2022/9/19〜2022/9/23 | 今週の平日だけを抽出する条件式 |
AND([日付]>=(EOWEEK(TODAY())-6), [日付]<=EOWEEK(TODAY())) | 2022/9/18〜2022/9/24 | 今週の1週間を抽出する条件式 |
AND([日付]>=(EOWEEK(TODAY())-12), [日付]<=(EOWEEK(TODAY())-8)) | 2022/9/12〜2022/9/16 | 先週の平日だけを抽出する条件式 |
あとはこの条件式をスライス設定に送れば完了です。

スライス機能はぜひ習得しておきましょう
個人的に覚えておきたいスライス設定を5つ紹介しています(^^)
【永久保存版】汎用性の高いスライスの設定5選
まとめ
以上、特定の期間を抽出する方法についての記事でした。
期間を抽出する関数としては
EOMONTH()関数とEOWEEK()関数
この2つを覚えておけば大丈夫です(^^)
当ブログ記事の内容を理解もしくはお気に入り登録しておいて、必要なときに活用していただけると嬉しいです。
記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。
わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!
勉強お疲れさまでした(^^)
いつもお世話になっております。
質問なのですが、こちらのEoWeekでの範囲を月曜日始まり日曜日終わりに変更することは可能でしょうか?
コメントありがとうございます(^^)
抽出したい期間は「今週の月曜日から来週の日曜日」でしょうか?
and([日付]>=(eoweek(today())-5),[日付]<=(eoweek(today())+1)) こちらの条件式をお試しください。