Googleスプレッドシート QUERY関数 超応用例 19(lableで見出しを制御)
Googleスプレッドシートの最強集計関数 QUERY関数シリーズの第19回です。
👇これまでのQUERY関数シリーズは 無料マガジンにまとめています。QUERY関数の魔術師を目指したい人は必読です!
前回はQUERY関数の
第6の句 skipping、第7の句 limit、第8の句 offset
の3つをセットで解説しました。
QUERY関数の見出しを整える label
今回はクエリ文の
第9の句 label
について学んでいきましょう。
$$
\begin{array}{lll}
\text{No}&\text{句}&\text{使用量}\\ \hline
\text{1}&\text{select}&\text{出力する列を指定 (類似関数 CHOOSECOLS)}\\ \hline
\text{\text2}&\text{where}&\text{条件でデータをフィルタ (類似関数 FILTER)}\\ \hline
\text{3}&\text{group by}&\text{行方向(縦)にグループ化(類似関数 UNIQUE)}\\ \hline
\text{4}&\text{pivot}&\text{列方向(横)にグループ化(類似関数 UNIQUE)}\\ \hline
\text{5}&\text{order by}&\text{データを並び替え(類似関数 SORT)}\\ \hline
\text{6}&\text{skipping}&\text{〇行おきにデータを出力する}\\ \hline
\text{7}&\text{limit}&\text{〇行目までデータを出力}\\ \hline
\text{8}&\text{offset}&\text{〇行目からデータを出力}\\ \hline
\textbf{9}&\textbf{label}&\textbf{列のラベル名を変更する}\\ \hline
\text{10}&\text{format}&\text{特定の列の値を書式設定}\\ \hline
\text{11}&\text{options}&\text{追加オプションを設定。(使わない)}\\ \hline
\end{array}
$$
今回も👇サンプルデータとして以下をコピペして利用ください。
No 日付 営業担当 商品 売上金額
1 2024/01/05 山田 A ¥1,500,000
2 2024/01/12 田中 B ¥2,200,000
3 2024/01/18 佐藤 C ¥800,000
4 2024/02/03 佐藤 B ¥1,800,000
5 2024/02/10 山田 C ¥700,000
6 2024/02/15 田中 A ¥2,500,000
7 2024/03/12 佐藤 A ¥2,000,000
8 2024/03/18 山田 B ¥1,100,000
9 2024/03/25 田中 C ¥2,800,000
10 2024/04/03 山田 A ¥1,900,000
11 2024/04/15 佐藤 C ¥2,400,000
12 2024/05/18 田中 A ¥780,000
13 2024/05/30 山田 C ¥550,000
14 2024/06/03 田中 A ¥1,400,000
15 2024/06/15 山田 C ¥2,300,000
16 2024/06/28 佐藤 A ¥1,850,000
17 2024/07/05 山田 B ¥900,000
18 2024/07/18 佐藤 A ¥500,000
19 2024/08/03 佐藤 A ¥2,050,000
20 2024/08/10 山田 B ¥700,000
21 2024/08/20 佐藤 B ¥600,000
22 2024/08/28 山田 A ¥1,750,000
23 2024/09/12 佐藤 C ¥2,250,000
24 2024/09/18 山田 B ¥800,000
25 2024/09/25 田中 A ¥2,650,000
26 2024/10/10 田中 B ¥750,000
27 2024/11/13 山田 B ¥580,000
28 2024/11/21 田中 A ¥1,650,000
29 2024/12/12 山田 B ¥940,000
30 2024/12/17 佐藤 C ¥1,230,000
31 2024/12/27 田中 A ¥1,600,000
32 2025/01/25 山田 B ¥3,000,000
33 2025/01/30 田中 A ¥1,200,000
34 2025/02/20 佐藤 B ¥900,000
35 2025/02/28 山田 A ¥1,600,000
36 2025/03/05 田中 C ¥600,000
37 2025/03/30 佐藤 B ¥750,000
38 2025/04/10 田中 B ¥950,000
39 2025/04/20 山田 B ¥650,000
40 2025/04/28 田中 A ¥1,700,000
41 2025/05/05 佐藤 B ¥1,000,000
42 2025/05/12 山田 C ¥2,100,000
43 2025/05/25 佐藤 B ¥2,600,000
44 2025/06/10 佐藤 B ¥850,000
45 2025/06/20 田中 B ¥600,000
46 2025/07/12 田中 C ¥2,700,000
47 2025/07/25 山田 B ¥1,550,000
48 2025/07/30 田中 C ¥1,250,000
49 2025/08/15 田中 C ¥2,900,000
50 2025/09/05 田中 B ¥1,150,000
51 2025/09/30 佐藤 C ¥900,000
52 2025/10/03 山田 A ¥1,950,000
53 2025/10/15 佐藤 C ¥2,550,000指定がない場合は、👆こちらをテーブルにしたものをQUERY関数の第1引数に使用します。
見出しを編集する QUERY関数の label の使い方
label はラベルという名前の通り、見出しを編集する為の句です。


=QUERY(表_1[#ALL],"label Col2 '販売日'")
label 列指定 見出し(文字列)
label に続いて 列を指定、半角スペースを挟んで 出力したい(置き換え後の)見出しを 文字列で(シングルクォートで括って)指定します。
上の例では label Col2 '販売日' で、列2を指定して、元々「日付」という見出しだった箇所を「販売日」に置き換えています。
labelの見出しは 必ずシングルクォートで括る(文字列リテラルとする)
見出しは文字列なのでクエリ内の構文ルールに従い '(シングルクォート)で括る必要があります。

仮に見出しを数字にしたい場合でも label Col2 2 のように、そのまま数値を指定するとエラーになります。

数字を指定する場合も label Col2 '2' のように前後をシングルクォートで括り、文字列リテラルで指定しましょう。
この時 見出しに表示されている 2は 数値ではなく文字列扱いとなっています。
QUERY関数の出力結果の見出し行は、必ず文字列になる仕様です。
labelの見出しをセル参照にする

=QUERY(表_1[#ALL],"label Col2 '"&M1&"'")
labelで指定する見出し(名)をセル参照とする場合も シングルクォートは必須です。
↓ シングルクォート、ダブルクォート
"label Col2 '" & M1 & "'"
↑ ダブルクォート シングルクォート ダブルクォートクエリ文の中でセル参照を使う書き方は、where句の時と一緒ですね。
labelで複数の列の見出しを指定する

=QUERY(表_2[#ALL],"label Col2 '販売日', Col3 'セールス'")
複数の見出しを指定する場合は、列指定 見出し の組み合わせを カンマ区切りで繰り返します。
label 列指定1 見出し1(文字列) , 列指定2 見出し2(文字列) , 列指定3 見出し3(文字列) …..
order by句と同じような書き方ってことですね。
ただ、order byは記述順がそのまま並び替えの優先度になりましたが、
labelは特に並び順に意味はなく

後の列を先に見出し指定しても問題ありません。
labelを見出し無しのデータに使った場合

見出しの無いデータだった場合、label句を使うとどうなるか?
ちなみに テーブルは以下のような仕様になっています。
テーブル名 ・・・ 見出しを除くデータ部分
テーブル名[#ALL] ・・・ 見出しを含めた表全体
第1引数で見出しの無いデータを指定した場合、👇このように labelで作成した列だけが見出しとしてピョコっと飛び出して出力され、それ以外の列の見出し行部分(1行目)は空文字となります。

QUERY関数には空文字という概念はないんですが、見出しだけは唯一例外で、ここは空白ではなく空文字となっています。
labelで見出しを削除できる

見出し行のある複数列のデータでは、指定した列の見出しを空文字にすることができます。
=QUERY(表_4[#ALL],"label Col2 ''")
label Col2 '' ← シングルクォート2つ
しかしケースによっては、lable句で '' を見出しとして指定することで、見出し削除(上に詰める)という処理になります。

=QUERY(表_4[#ALL],"select Col2 label Col2 ''")
このように 単一列を出力する場合に、その列の見出しを '' で空指定すると、見出しが削除されてデータが上に詰めることになります。
これは複数列でも使えます。ただし、

=QUERY(表_4[#ALL],"label Col1 '', Col2 '', Col3 '', Col4 '', Col5 ''")
このように全ての列を label で空指定する必要があり記述が煩雑になります。
複数列の一括見出し削除であれば、前回登場した offset 1 を使うテクニックの方が良いでしょう。

=QUERY(表_4[#ALL],"offset 1",0)
offsetの活用シーン(offsetで見出しを除いたデータ部分だけを出力する)
label を使った見出し削除は 👇のような 集計関数や演算子を使って余計な見出しが生成された場合に使うと便利です。

=QUERY(表,"select sum(Col5) label sum(Col5) ''")
Q1. group by と組み合わせて label を使いたい

上で書いた通りlabel句は シンプルに列を指定するだけではなく、集計関数やスカラー関数、算術演算子で加工した列を指定して見出しを変更することが出来ます。
実際に式を作って理解を深めましょう。
上の画像のように表データの2列目の日付データを年、月でグループ化して5列目の売上金額を合計した集計表を生成します。
この時見出しをそれぞれ、年、月、売上合計 としたい場合は、どのような式を記述すればよいでしょうか?
考えてみましょう!
↓↓
回答はここから。
↓↓
A1. group by と組み合わせて label を使う
回答です。

=QUERY(表_5[#ALL],"select year(Col2),month(Col2)+1,sum(Col5)
group by year(Col2),month(Col2)+1
label year(Col2) '年',month(Col2)+1 '月',sum(Col5) '売上合計'")同じ記述が何度も出てくるのが微妙ではありますが、これくらいなら愚直に書いてしまった方がよいでしょう。
注意点として select句を使った場合は、label句 では select句で指定したものと同じ記述で指定 する必要があります。
select句で month(Col2) + 1 と指定した場合は、
label句でも month(Col2) + 1 '月' と指定するってことです。
これで QUERY関数の集計表の見出しを 自由に変更することが出来ますね!
【応用技】select 句が複雑な場合は 直接 label句を使わない
しかしケースによっては、直接 label句で 見出し修正をしない方がよいものもあります。

=QUERY(イベント計画表[#ALL],
"select Col1,Col2,Col3,
toDate((dateDiff(Col3,date '1970-01-01')+Col4)*24*60*60*1000)
where Col2 = '"&F1&"'")
👆これは QUERY関数シリーズ13のお題で登場した、終了日を算出する式ですが、この出力結果の4列目の見出しを「終了日」に変えたい場合、そのまま label句を使うと

=QUERY(イベント計画表[#ALL],"select Col1,Col2,Col3,
toDate((dateDiff(Col3,date '1970-01-01')+Col4)*24*60*60*1000)
where Col2 = '"&F1&"'
label toDate((dateDiff(Col3,date '1970-01-01')+Col4)*24*60*60*1000) '終了日'")こんな式になります。
さすがに長いんで、もうちょいすっきりさせたいですよね。
この回避方法は2つあって、1つは

=QUERY(QUERY(イベント計画表[#ALL],"select Col1,Col2,Col3,
toDate((dateDiff(Col3,date '1970-01-01')+Col4)*24*60*60*1000)
where Col2 = '"&F1&"'"),"label Col4 '終了日'")このように1回目のQUERY関数では、見出しそのままとして、もう1回 QUERY関数をネストして label Col4 '終了日' と指定する方法。
もう1つはLET関数を使って

=LET(q,"toDate((dateDiff(Col3,date '1970-01-01')+Col4)*24*60*60*1000)",
QUERY(イベント計画表[#ALL],"select Col1,Col2,Col3,"&q&"
where Col2 = '"&F1&"' label "&q&" '終了日'"))このように長い記述部分を変数化してクエリ文内で変数指定する方法です。
QUERY関数はどうしても記述が長くなりがちなんで、工夫してシンプルにしていきましょう!
pivot 句と組み合わせて labelを使う
もう1つの集計句である pivot と組み合わせてlabelは使えるのでしょうか?

=QUERY(表_6[#ALL],"select month(Col2)+1,sum(Col5) group by month(Col2)+1 pivot year(Col2)")このように 縦に月、横に年で売上の合計をピボット集計したQUERY式があった場合、

1列目の見出しは普通に label month(Col2)+1 '月' で変更できます。

しかし pivot句で横に展開している見出し部分を変えたい場合は、
✖ label month(Col2)+1 '月',year(Col2) '年'

このようにpivot で指定している year(Col2) を labelで指定するとエラーになります。
ピボット集計の際も label句で指定出来るのは、select句で指定してる列だけです。
つまり pivot句で横に展開された 年の見出しを変えたい場合は

=QUERY(表_6[#ALL],"select month(Col2)+1,sum(Col5)
group by month(Col2)+1 pivot year(Col2)
label month(Col2)+1 '月',sum(Col5) '年合計'")このように
label month(Col2)+1 '月',sum(Col5) '年合計'"
集計関数の sum(Col5) を指定することになります。
この時 生成されている見出しは

本来の pivot year(Col2) で生成される 年をユニークにして左から昇順に横に並べた 元の見出しの 後ろに 半角スペースを挟んで labelで指定した見出しが付く形になります。
単位を付けたい時にはよさそうですね。
pivoto句を使ったピボット集計表の 見出しを完全に変更したい場合は、先ほど登場したもう1回QUERY関数を使う方法か、前回学んだ offset 0 を使った見出し削除した上で、別で作成した見出しデータとVSTACKで連結となります。
offsetの活用シーン(offsetで見出しを除いたデータ部分だけを出力する)
label句の使い方は理解できたでしょうか?
QUERY関数の limit offset label を組み合わせた超応用例に挑戦
最後に今回学んだ labelと 前回学んだ limit, offset の3つの句と 他の関数を組み合わせる超応用例にチャレンジして終了としましょう。
え? skippingがいないんだけど・・・。と思われたかもしれませんが、残念ながら skipping を絡めたお題が思いつかず。。
まさにskippngだけに飛ばされてしまいましたねw (くだらないことで文字数が増えていく)
ちなみに label句は無理に使っている感じです。。
Q2. 表のデータを見出し付き、1列空け(出力行を表示)で、指定した行数ごとに分割して出力したい

縦に長い(行数が多い)データを印刷や目視用に「〇行ごとに折り返して表示したい!」ってケースはあるあるですよね。
左側のテーブルデータを、H1セルで指定した行数で折り返して出力する数式の作成にチャレンジしてみましょう。
ただし、以下の条件を満たすものとします。
H1が空白の時はテーブルのデータをそのまま出力する

折り返して出力するデータにはそれぞれ見出しを付ける

折り返した各データは間を1列空ける(左側に空白列を挟む)

挿入する空白列の見出しは 右のデータが 何行目から何行目かわかるように、N-M で出力データの行情報を表示する

最後の列はちゃんとに元データの行数(53行)とします。

最後の折り返しデータの不足行部分は空白とする

QUERY関数と他の関数を組み合わせた難易度高めの超応用例です。
なお 空白部分は空文字でもOKとし、日付はシリアル値で出力されても良いものとします。
これくらい余裕っしょ!という人もいるかと思いますが、その場合はさらに以下の追加条件も満たしてください
セルの表示形式は自動のままで 日付はシリアル値とならないように 元の日付表示のまま出力する
Excelと違って数式でセルを参照した時に、表示形式もセットで参照するのはGoogleスプレッドシートの面白い仕様ですね。
ただ一部の関数を通すと、表示形式がリセットされてしまいます。それを回避せよという追加縛りです!(label句はここで使ってください)
当然ですが前提条件として「QUERY関数を使うものとする」があります。他の関数でも頑張れば代替できますが、今回はQUERY関数のお題です。

QUERY関数に自信のある方はチャレンジしてみてください!
考えてみましょう!
↓↓
回答はここから。
↓↓
A2. 表のデータを見出し付き、1列空け(出力行を表示)で、指定した行数ごとに分割して出力したい
回答です。

=LET(
x,表_10[#ALL],m,G1,
r,ROWS(x)-1,n,CEILING(r,m),
IF(m="",x,
REDUCE(TOROW(,1),SEQUENCE(n/m,1,0,m),LAMBDA(pv,cv,
IFNA(HSTACK(pv,(cv+1)&"-"&MIN(cv+m,r),
QUERY(x,"limit "&m&" offset "&cv)
))
)))
)今回学んだQUERY関数で limt と offset を使って〇行目から△行を出力する式を核として、これをREDUCEでoffset の数をズラしながら 繰り返し、HSTACKで 出力行の文字列を挟んで横に連結、IFNA関数でNAエラー箇所を空白に置き換える式です。
解説していきましょう。
まずLET関数で テーブル全体の参照と 行数を指定するセル H1を変数化します。
=LET(x,表_10[#ALL],m,H1,
次に表の見出しを除くデータ部分の行数を r,ROWS(x)-1 で rと置き、
実際に出力するデータ部分の行数を n,CEILING(r,m) で nと置きます。
CEILING関数は 第1引数の数値を第2引数の数値の倍数に切り上げる関数です。
今回 r は 53なので、m(G1セルで指定する折り返す行数)に応じて
CEILING(53,20) ・・・ 60
CEILING(53,40) ・・・ 80
CEILING(53,50) ・・・ 100
となります。
ここから実際の処理に入っていきます。
「H1セルが空白の時は、そのままテーブルを返す」こちらの条件はIFで最初に分岐しちゃいましょう。
IF(m="",x,
ここから 〇行ずつ取り出したデータを 連結する繰り返し処理なので、 REDUCE関数の出番です。
REDUCE(TOROW(,1),SEQUENCE(n/m,1,0,m),LAMBDA(pv,cv,
第1引数の初期値は TOROW(,1)
第2引数の配列は SEQUENCE(n/m,1,0,m)
としています。
第1引数の TOROW(,1)は 幅(列数)0の空配列です。
これはHSTACKで他の配列と組み合わせて消滅するという特性をもっています。このテクニックを利用しています。
SEQUENCE(n/m,1,0,m) の方は n は CEILINGで mの倍数としているので、 n/mは整数となるようになっています。
たとえば、m(折り返す行数)を 20とした場合、n は 60となり、SEQUENCEは { 0 ; 20 ; 40 } という配列を返します。

SEQUENCEで生成される数値配列の展開方向(縦か横か?)は、基本的には REDUCE内の処理に影響はありません。
核となるQUERY関数部分の式が
QUERY(x,"limit "&m&" offset "&cv)
こちらです。
limitは 出力する行数なので、m そのまま固定でOK。
offsetの方は 1回目は1行目からなので offset 0、2回目は offset 20 、3回目は offset 40 となります。
そのまま 使える用にSEQUENCEで 配列を作っているので、

offset "& cv と書けます。(offsetの後ろに半角スペースを入れるのを忘れずに)
折り返した配列の左側の空白列の見出し部分の作成が
(cv+1)&"-"&MIN(cv+m,r)
この式です。mが20の例だと
1回目 cvが0の時 cv+1 ・・・ 1、cv+m ・・・ 20
2回目 cvが20の時 cv+1 ・・・ 21、cv+m ・・・ 40
3回目 cvが40の時 cv+1 ・・・ 41、 cv+m ・・・ 60
このようになります。
最後の3回目の 60だけ 本来の行数である 53を超えてしまうので、元データの行数を超えないように
MIN(cv+m,r)
として、MIN関数で調整しています。
これを挟んで HSTACKで一つ前の結果 pv と横に連結
HSTACK(
pv,
(cv+1)&"-"&MIN(cv+m,r),
QUERY(x,"limit "&m&" offset "&cv)
)
このようになります。

このHSTACKによる横連結の際の結合面のサイズ違いで 不足する部分が #N/Aエラーとなるので、最後にこれをIFNA関数で括って空白とすれば完成です。

GoogleスプレッドシートのIFERROR関数やIFNA関数は第2引数を省略することで、エラーだったら空白を返す仕様となっています。
難しかったですかね?出来たでしょうか?
IFNAやIFERROR、配列に対して IF関数を使うと 表示形式(日付表示)が解除されシリアル値に戻る
お題の追加条件で
セルの表示形式は自動のままで 日付はシリアル値とならないように 元の日付表示のまま出力する
に挑戦しようと書きましたが、実は上の式の解説の中で

このように最後のIFNA関数を使った後で 日付データがシリアル値に変わってしまっています。
この理由は、Googleスプレッドシートが
IFNA関数やIFERROR関数、または配列としてIF関数で処理した場合は、データの日付表示が解除されシリアル値に戻る
という仕様だからです。

👆こちらを見てください。
3桁区切りの ¥マーク付き表示にしているA2:A5の数値が、IFNAやIFERRORを使った時、そしてIF関数単体なら問題ないんですが、ARRAYFORMULAとIFを組み合わせた(配列に対してIF関数を使った)数式の時だけは 出力結果が表示形式を引き継いでいないのがわかりますね。
IFNAやIFERRORはISNA、ISERRORにIFを組み合わせて代替できますが、要の IF関数を配列で利用した場合に表示形式がリセットされてしまう、これが非常に厄介なんです。
A2b. 表のデータを見出し付き、1列空け(出力行を表示)で、指定した行数ごとに分割して出力したい(日付は日付表示のままで)
今回のケースだと 日付表示を維持する為には HSTACK + IFNAが使えないってことです。
これを回避する為には、
折り返した最後の不足部分の行数、データと同じ列数の 空白配列
間に挟む 表示行範囲を見出しとした n行、1列サイズの 空白配列
を用意してIFNAを使わない式を組む必要があります。
というわけで、追加条件の「日付表示のまま」出力する為の回答が

=LET(
x,表_10[#ALL],m,G1,
r,ROWS(x)-1,n,CEILING(r,m),
padding,MAKEARRAY(n-r,COLUMNS(x),LAMBDA(r,c,)),
y,VSTACK(x,padding),
IF(m="",x,
REDUCE(TOROW(,1),SEQUENCE(n/m,1,0,m),LAMBDA(pv,cv,
HSTACK(pv,
QUERY(SEQUENCE(m),"select 1/0 label 1/0 '"&(cv+1)&"-"&MIN(cv+m,r)&"'"),
QUERY(y,"limit "&m&" offset "&cv)
)
))
)
)こちらになります。
QUERY関数の label句をあえて使っている為、少し記述が長くなっていますw
まず、
折り返した最後の不足部分の行数、データと同じ列数の 空白配列
これが

MAKEARRAY(n-r,COLUMNS(x),LAMBDA(r,c,))
この部分です。
MAKEARRAY関数は指定した行数、列数の配列を生成する関数です。
この MAKEARRAYで折り返し行数の倍数に対して不足する部分の行数の空の配列を用意して、これを padding と変数化しています。

padding を元となる見出しを含めた表全体 x とVSTACK関数で縦に連結して y と置きます。
ここは接合面のサイズが一致しているので、{ x ; padding } としてもOK

y,VSTACK(x,padding)
これで m行で折り返した時に「足りない部分」がない(不足部分をあらかじめ空白とした)配列が用意できました。
もう1つの
間に挟む 表示行範囲を見出しとした n行、1列サイズの 空白配列
これを生成している箇所が REDUCE内の

QUERY(SEQUENCE(m),"select 1/0 label 1/0 '"&(cv+1)&"-"&MIN(cv+m,r)&"'")
この部分です。
これは以前登場した QUERY関数で空白列を生成するテクニック select 1/0 を使っています。
QUERY関数の第1引数の配列に SEQUENCE(m) ・・・ m行の配列 を渡すことで、m行1列の空配列を生成しています。

この時 select句で算術演算子を使ったことで自動で見出し quotient(1()0()) が生成されてしまうので、これを今回学んだ label句で、
"select 1/0 label 1/0 '"&(cv+1)&"-"&MIN(cv+m,r)&"'"
このように 右側が何行目から何行目の出力か?を表示したものに見出しを置き換えています。
ここでlabel句が使えましたね!
あとはこれをHSTACKで 横連結すれば完成です。
※ここはREDUCEの初期値で TOROW(,1) を使っているので { , } (中カッコ連結)は使えません。
その他の部分は先の回答と一緒です。
今回QUERY関数で生成した間に挟む1列の空配列は、
WRAPCOLS((cv+1)&"-"&MIN(cv+m,r),m,)
実は👆 WRAPCOLS関数で生成した方が簡単ですw
今回は学んだばかりの QUERY関数のlabel句の出番を用意したかったんで、あえてQUERY関数で空配列を生成してみました。

日付表示形式のまま指定した行数で折り返して出力する数式の完成です。
QUERY関数 order by, skipping, limit, offset, label も完全に理解した(した?)
今回は QUERY関数の見出しを編集、削除する label句を学びました。
連続3週にわたって、一気にQUERY関数の後半 5つの句
第5句 order by ・・・ 並べ替え
第6句 skipping ・・・ 〇行ごとに表示
第7句 limit ・・・ 上から〇行だけ表示
第8句 offset ・・・ 上から〇行を除外して表示
第9句 lable ・・・ 見出しを編集、削除
を学びました。
where句 だけ(しかも日付なし)で 4回もやってたのを考えると、後半の句はシンプルなのもあって、解説や応用例のボリュームが減ってきましたね。
ただ、残っている実質最後の句(option句は使わない為) format 句は 特殊な仕様である為、結構ボリュームがある内容となります。
というわけで、ここでまた一旦QUERY関数シリーズはお休みして、違うネタを何週か挟んでから再開したいと思います。
次回は小ネタQuickTipsシリーズを予定。
いいなと思ったら応援しよう!
チップ大歓迎です。やる気がアップしますw