ご存知の国民的アニメ、「ドラえもん」のキャラクターの点数を使って、Excelにはないスプレッドシートのオリジナル関数、QUERY関数の基礎の基礎を掲載致します。
なんか難しそうなことをやるのでは・・・って身構えちゃいますよね。
最初は私もそうでした。
なので、この記事ではQUERY関数について、シンプルかつ丁寧にお伝えさせて頂きます。
QUERY関数では、例えば「ジャイアンの点数だけを絞り込んで」といったお願いを聞いてくれたり、点数を高い順にして、というお願いにも答えてくれる、とっても便利な関数なんです。
QUERY関数のざっくりとしたイメージですが、VLOOKUP関数をもっと便利した様なものなんだな〜〜程度のイメージで全然OKです。
まずは、こんな感じの表を作ってみました。
QUERY関数の引数(関数に「この条件でお願いしてね」って伝える内容)は、たった3つだけです。
・データの範囲
・クエリ(上の表から、「ジャイアンの点数を出して!」などと命令をするもの)
・データの「1行目」から持って来てと指定するために「1」を入力
これだけなので、まずはシンプルなものからやって行きます!!
左の表の一部を、右の黄色いセルのあるE1に関数を入れて行きます。
最初なので、シンプルに教科のあるB列だけを取り出してみます。
まず、
=qu
と入力して、Tabキーを押すと関数名が補完されて更に大文字になって、
=QUERY(
と数式バーに表示されます。
(細かいことですが、この関数名の補完は、かなり便利で時短に繋がると思います。)
まずは表の範囲を指定するので、A列からC列まで選択します。
=QUERY(A:C
この後、カンマを打って、ダブルクォーテーションも打ち、
=QUERY(A:C,”
この様に表示されます。
QUERY関数が他の関数とちょっと変わっているのは、このダブルクォーテーションを打つことです。
このダブルクォーテーションの中に、自分が取り出したい条件を指定するのがQUERY関数のルールなので、今は「そういうもんなんだ。」って取り敢えず進めますね。
今回は最初なので、シンプルに教科のB列だけを取り出してみます。
=QUERY(A:C,”select B
と入力します。
selectなんて、見慣れないしちょっと不安・・・って思われた方、大丈夫です!!
selectは英語で、「選択する」という動詞で、英文法で動詞で始まる文は命令文って中学英語で習ったと思いますので、「選択して!」という命令文を入れました。
いきなり英文法の話なんかしたので、「私は英語が苦手なんですけれど、大丈夫でしょうか?」と思われた方、それも大丈夫です!!
というのは、実は私は英検3級落ちました(笑)
それでも今ではQUERY関数を多少は使えるぐらいになりましたので、あなたなら絶対大丈夫です!!
それで、selectで何を選択するのか、動詞の後に目的語であるB列を選択するので、 「select B」 と打ちました。
あとは、ダブルクォーテーションを閉じて、カンマを打ちます。
=QUERY(A:C,”select B”,
今は、こんな感じになっています。
最後にこの表の1行目から持ってくるので、1行目の1を関数の中に指定して、括弧を閉じます。
最終的には、この様になりました。
=QUERY(A:C,”select B”,1)
このようにB列だけ絞り込めました。
今度は、A列とB列だけにしてみます。
これも簡単で、カンマで区切って「A,B」とすると、A列とB列のみになります。
=QUERY(A:C,”select A,B”,1)
と、このように、列をカンマで区切って指定します。
全ての列を表示させるには、A,B,C・・・と全て書くのですが、それは面倒なので、このように、*(アスタリスク)を使います。
=QUERY(A:C,”select *”,1)
今度は、「ジャイアンだけ」を抽出してみます。
whereは英語で「どこ」ですよね。
ジャイアンだけを出すには、where(どこ)でA列という「場所」を指定して、A列が「ジャイアン」であることをQUERY関数に伝えます。
1つ注意点として、ジャイアンを抽出する際に、ジャイアンの名前を「’(シングルクォーテーション)」で囲って、 ‘ジャイアン’ と指定します。
=QUERY(A:C,”select * where A=’ジャイアン'”)
ポイントは、
・条件を指定したいときはwhereを使う
・条件(例えば「ジャイアン」という名前)は、シングルクォーテーションを使う
の2点です。
ここで、なぜダブルクォーテーションではなく、シングルクォーテーションを使うのか、という理由をお話しします。
シングルクォーテーションを使う理由は、すでにダブルクォーテーションを使ってしまっているので、その状態でダブルクォーテーションを使うと、クエリの範囲が途切れてしまうからです。
では、仮にダブルクォーテーションを使ったとします。
“select * where A=”ジャイアン””
となると、select からジャイアンの直前のイコールまでがクエリとして認識されて、そこで終わってしまうので、ダブルクォーテーションではなく、シングルクォーテーションを使うことによって、クエリの条件指定が、まだまだ続きますよ〜ということをQUERY関数に伝えているのです。
=QUERY(A:C,”select * where A=’ジャイアン'”,1)
今、この様に式が入っていて、
という様に表示がされています。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
ガーデンローズという薔薇です。
次にジャイアンの点数を昇順(低い順)に並べ替えてみます。
昇順に並び替えるには、
「order by」で「並び替えるよ〜〜」って宣言してから、並び替えたい列(この場合は点数が入っているC列)を指定して、昇順という意味のascを指定します。
なので、 order by C asc をダブルクォーテーションの中に入れてあげます。
=QUERY(A:C,”select * where A=’ジャイアン’ order by C asc”,1)
今度は、昇順ではなく、降順で点数の高い順にしてみます。
それには、ascの所を、descに変えます。
=QUERY(A:C,”select * where A=’ジャイアン’ order by C desc”,1)
ポイントは、
・並べ替えにはorder byを使う
・その次に並べ替えたい列を指定する
・最後に昇順(asc)か降順(desc)を指定する
になります。
ジャイアン、意外にも理科が得意だったんですね。
いつも空き地の土管で歌っているから、歌いながら動植物でも観察しているのでしょうか・・・。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
地元で有名な公園といえば、水元公園(東京都葛飾区にある、都立公園)です。
ちょっとここでこの写真を見て休憩〜〜〜
では、最後に全てのキャラクターを
・「名前」で昇順
・「点数」で降順
で並び替えてみます。
まず、名前の昇順からです。
=QUERY(A:C,”select * order by A asc”,1)
となるのですが・・・、ここでおかしなことが発生しました(涙)
あれ!!データ、どこいった!!
実は、この表をず〜〜〜〜〜〜〜〜〜〜っと下にスクロールすると、
980行目ぐらいにデータがありました。
これ、どういうことなのか、と申しますと、昇順に並べる時に空っぽの行が上に来てしまっているのです。
なので、「空白の行を除いて下さい」とクエリの中で指定する必要が出てきます。
この空っぽというのは、nullと言います。
nullは「ヌル」という読み方をして、「何もない」ことをnullと言います。
何もないというのは、ゼロでもありません。
「ドラえもん」を例に、「nullとゼロの違い」を解説します。
のび太はしょっちゅう0点を取って、いつも先生やママに叱られていますが、0点という点数だって一応テストは受けたのですから、nullではなく抽出されるべき点数です。
なので、nullとは0ではなく、この例ですと「テストを受けていない、ドラえもん」になります。
空白行以外を出したいのであれば、where句を使って、
where A is not null
という条件を追加する必要が出てきます。
これで、A列はnullでは無いという意味です。
(他の列を指定しても大丈夫ですが、ここでは話をシンプルにする為に、A列が空白行では無いという条件を指定しました。)
=QUERY(A:C,”select * where A is not null order by A asc”,1)
と、「where A is not null」を追加してみると・・・
この様に、無事に表示されました。
では、A列の名前が昇順、C列の点数が降順(高い順)にしてみます。
続けて条件を指定する場合には、A列の条件の後に「カンマ」を打つことを忘れない様にすることがポイントです。
=QUERY(A:C,”select * where A is not null order by A asc,C desc”,1)
と指定すると、名前の昇順、点数の高い順(降順)に並び替えられました。
例えば「のび太くん」は、「国語が得意」という分析が出来ました。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
このブレイクタイムPhotoは、多摩モノレールの写真です。
JR立川駅から立川南まで歩いてすぐ多摩モノレールに乗り換えられて、柴崎体育館駅で下車して日野方面に南下した所にある、多摩川河川敷から多摩モノレールを撮影しました。
最後に更に深くQUERY関数のことを知りたいという方へ
QUERY関数シリーズ動画を掲載致します。
Googleの神様でG神と呼ばれている牛乳屋さんcooker8 by 明治クッカーの西原亮社長、にっしー氏のチャンネルがオススメです!
(私は、ただの1視聴者であり、にっしー社長とは面識がございません。)
動画その1
動画で使うサンプルは、テストデータージェネレーターを使って用意をしました。
これを使うと、ランダムな氏名・フリガナ・性別・生年月日が生成出来ます。
動画その2
また、ランダムな点数はrand関数を使いました。
例えば、500点満点のぐらいの点数を用意したい場合は、
=rand()*500
で、ランダムな点数が生成出来ます。
ただ、rand関数で生成した結果は、このままでは実行の度に点数が変わってしまうので、[Ctrl]+[Shift]+[V]で値貼りすると、スムーズに学習が進めました。
にっしー社長の動画は チャンネル登録 をしていて、動画が見終わったら「Goodボタン」を押して楽しく拝聴しております。
スプレッドシートやExcelの学習についてオススメの本を紹介いたします。
■ できるYoutuber式 Googleスプレッドシート 現場の教科書 できるYouTuber式シリーズ ■
単行本(ソフトカバー)
Kindle版
■ 増強改訂版できるYouTuber式Excel現場の教科書 できるYouTuber式シリーズ ■
単行本(ソフトカバー)
Kindle版
■ なんの才能もない発達障害者の声: 〜 届かない声を届けたい 〜 (障害者雇用) ■
殆ど障害者雇用や発達障害の悩みについての内容ですが、少しだけExcelやスプレッドシートの「障害者雇用のお仕事で特に役に立ったショートカットキー」についてまとめております。
Kindle版
皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・
こちらも多摩モノレールの写真になります。
仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!
こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。
※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪


最後までご精読、誠にありがとうございました!!
フォトストック写真ACさんのプロフィールページ
最後までお付き合い頂き、誠にありがとうございました!!
ご存知の国民的アニメ、「ドラえもん」のキャラクターの点数を使って、Excelにはないスプレッドシートのオリジナル関数、QUERY関数の基礎の基礎を掲載致します。
なんか難しそうなことをやるのでは・・・って身構えちゃいますよね。
最初は私もそうでした。
なので、この記事ではQUERY関数について、シンプルかつ丁寧にお伝えさせて頂きます。
QUERY関数では、例えば「ジャイアンの点数だけを絞り込んで」といったお願いを聞いてくれたり、点数を高い順にして、というお願いにも答えてくれる、とっても便利な関数なんです。
QUERY関数のざっくりとしたイメージですが、VLOOKUP関数をもっと便利した様なものなんだな〜〜程度のイメージで全然OKです。
まずは、こんな感じの表を作ってみました。
QUERY関数の引数(関数に「この条件でお願いしてね」って伝える内容)は、たった3つだけです。
・データの範囲
・クエリ(上の表から、「ジャイアンの点数を出して!」などと命令をするもの)
・データの「1行目」から持って来てと指定するために「1」を入力
これだけなので、まずはシンプルなものからやって行きます!!
左の表の一部を、右の黄色いセルのあるE1に関数を入れて行きます。
最初なので、シンプルに教科のあるB列だけを取り出してみます。
まず、
=qu
と入力して、Tabキーを押すと関数名が補完されて更に大文字になって、
=QUERY(
と数式バーに表示されます。
(細かいことですが、この関数名の補完は、かなり便利で時短に繋がると思います。)
まずは表の範囲を指定するので、A列からC列まで選択します。
=QUERY(A:C
この後、カンマを打って、ダブルクォーテーションも打ち、
=QUERY(A:C,”
この様に表示されます。
QUERY関数が他の関数とちょっと変わっているのは、このダブルクォーテーションを打つことです。
このダブルクォーテーションの中に、自分が取り出したい条件を指定するのがQUERY関数のルールなので、今は「そういうもんなんだ。」って取り敢えず進めますね。
今回は最初なので、シンプルに教科のB列だけを取り出してみます。
=QUERY(A:C,”select B
と入力します。
selectなんて、見慣れないしちょっと不安・・・って思われた方、大丈夫です!!
selectは英語で、「選択する」という動詞で、英文法で動詞で始まる文は命令文って中学英語で習ったと思いますので、「選択して!」という命令文を入れました。
いきなり英文法の話なんかしたので、「私は英語が苦手なんですけれど、大丈夫でしょうか?」と思われた方、それも大丈夫です!!
というのは、実は私は英検3級落ちました(笑)
それでも今ではQUERY関数を多少は使えるぐらいになりましたので、あなたなら絶対大丈夫です!!
それで、selectで何を選択するのか、動詞の後に目的語であるB列を選択するので、 「select B」 と打ちました。
あとは、ダブルクォーテーションを閉じて、カンマを打ちます。
=QUERY(A:C,”select B”,
今は、こんな感じになっています。
最後にこの表の1行目から持ってくるので、1行目の1を関数の中に指定して、括弧を閉じます。
最終的には、この様になりました。
=QUERY(A:C,”select B”,1)
このようにB列だけ絞り込めました。
今度は、A列とB列だけにしてみます。
これも簡単で、カンマで区切って「A,B」とすると、A列とB列のみになります。
=QUERY(A:C,”select A,B”,1)
と、このように、列をカンマで区切って指定します。
全ての列を表示させるには、A,B,C・・・と全て書くのですが、それは面倒なので、このように、*(アスタリスク)を使います。
=QUERY(A:C,”select *”,1)
今度は、「ジャイアンだけ」を抽出してみます。
whereは英語で「どこ」ですよね。
ジャイアンだけを出すには、where(どこ)でA列という「場所」を指定して、A列が「ジャイアン」であることをQUERY関数に伝えます。
1つ注意点として、ジャイアンを抽出する際に、ジャイアンの名前を「’(シングルクォーテーション)」で囲って、 ‘ジャイアン’ と指定します。
=QUERY(A:C,”select * where A=’ジャイアン'”)
ポイントは、
・条件を指定したいときはwhereを使う
・条件(例えば「ジャイアン」という名前)は、シングルクォーテーションを使う
の2点です。
ここで、なぜダブルクォーテーションではなく、シングルクォーテーションを使うのか、という理由をお話しします。
シングルクォーテーションを使う理由は、すでにダブルクォーテーションを使ってしまっているので、その状態でダブルクォーテーションを使うと、クエリの範囲が途切れてしまうからです。
では、仮にダブルクォーテーションを使ったとします。
“select * where A=”ジャイアン””
となると、select からジャイアンの直前のイコールまでがクエリとして認識されて、そこで終わってしまうので、ダブルクォーテーションではなく、シングルクォーテーションを使うことによって、クエリの条件指定が、まだまだ続きますよ〜ということをQUERY関数に伝えているのです。
=QUERY(A:C,”select * where A=’ジャイアン'”,1)
今、この様に式が入っていて、
という様に表示がされています。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
ガーデンローズという薔薇です。
次にジャイアンの点数を昇順(低い順)に並べ替えてみます。
昇順に並び替えるには、
「order by」で「並び替えるよ〜〜」って宣言してから、並び替えたい列(この場合は点数が入っているC列)を指定して、昇順という意味のascを指定します。
なので、 order by C asc をダブルクォーテーションの中に入れてあげます。
=QUERY(A:C,”select * where A=’ジャイアン’ order by C asc”,1)
今度は、昇順ではなく、降順で点数の高い順にしてみます。
それには、ascの所を、descに変えます。
=QUERY(A:C,”select * where A=’ジャイアン’ order by C desc”,1)
ポイントは、
・並べ替えにはorder byを使う
・その次に並べ替えたい列を指定する
・最後に昇順(asc)か降順(desc)を指定する
になります。
ジャイアン、意外にも理科が得意だったんですね。
いつも空き地の土管で歌っているから、歌いながら動植物でも観察しているのでしょうか・・・。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
地元で有名な公園といえば、水元公園(東京都葛飾区にある、都立公園)です。
ちょっとここでこの写真を見て休憩〜〜〜
では、最後に全てのキャラクターを
・「名前」で昇順
・「点数」で降順
で並び替えてみます。
まず、名前の昇順からです。
=QUERY(A:C,”select * order by A asc”,1)
となるのですが・・・、ここでおかしなことが発生しました(涙)
あれ!!データ、どこいった!!
実は、この表をず〜〜〜〜〜〜〜〜〜〜っと下にスクロールすると、
980行目ぐらいにデータがありました。
これ、どういうことなのか、と申しますと、昇順に並べる時に空っぽの行が上に来てしまっているのです。
なので、「空白の行を除いて下さい」とクエリの中で指定する必要が出てきます。
この空っぽというのは、nullと言います。
nullは「ヌル」という読み方をして、「何もない」ことをnullと言います。
何もないというのは、ゼロでもありません。
「ドラえもん」を例に、「nullとゼロの違い」を解説します。
のび太はしょっちゅう0点を取って、いつも先生やママに叱られていますが、0点という点数だって一応テストは受けたのですから、nullではなく抽出されるべき点数です。
なので、nullとは0ではなく、この例ですと「テストを受けていない、ドラえもん」になります。
空白行以外を出したいのであれば、where句を使って、
where A is not null
という条件を追加する必要が出てきます。
これで、A列はnullでは無いという意味です。
(他の列を指定しても大丈夫ですが、ここでは話をシンプルにする為に、A列が空白行では無いという条件を指定しました。)
=QUERY(A:C,”select * where A is not null order by A asc”,1)
と、「where A is not null」を追加してみると・・・
この様に、無事に表示されました。
では、A列の名前が昇順、C列の点数が降順(高い順)にしてみます。
続けて条件を指定する場合には、A列の条件の後に「カンマ」を打つことを忘れない様にすることがポイントです。
=QUERY(A:C,”select * where A is not null order by A asc,C desc”,1)
と指定すると、名前の昇順、点数の高い順(降順)に並び替えられました。
例えば「のび太くん」は、「国語が得意」という分析が出来ました。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
このブレイクタイムPhotoは、多摩モノレールの写真です。
JR立川駅から立川南まで歩いてすぐ多摩モノレールに乗り換えられて、柴崎体育館駅で下車して日野方面に南下した所にある、多摩川河川敷から多摩モノレールを撮影しました。
最後に更に深くQUERY関数のことを知りたいという方へ
QUERY関数シリーズ動画を掲載致します。
Googleの神様でG神と呼ばれている牛乳屋さんcooker8 by 明治クッカーの西原亮社長、にっしー氏のチャンネルがオススメです!
(私は、ただの1視聴者であり、にっしー社長とは面識がございません。)
動画その1
動画で使うサンプルは、テストデータージェネレーターを使って用意をしました。
これを使うと、ランダムな氏名・フリガナ・性別・生年月日が生成出来ます。
動画その2
また、ランダムな点数はrand関数を使いました。
例えば、500点満点のぐらいの点数を用意したい場合は、
=rand()*500
で、ランダムな点数が生成出来ます。
ただ、rand関数で生成した結果は、このままでは実行の度に点数が変わってしまうので、[Ctrl]+[Shift]+[V]で値貼りすると、スムーズに学習が進めました。
にっしー社長の動画は チャンネル登録 をしていて、動画が見終わったら「Goodボタン」を押して楽しく拝聴しております。
スプレッドシートやExcelの学習についてオススメの本を紹介いたします。
■ できるYoutuber式 Googleスプレッドシート 現場の教科書 できるYouTuber式シリーズ ■
単行本(ソフトカバー)
Kindle版
■ 増強改訂版できるYouTuber式Excel現場の教科書 できるYouTuber式シリーズ ■
単行本(ソフトカバー)
Kindle版
■ なんの才能もない発達障害者の声: 〜 届かない声を届けたい 〜 (障害者雇用) ■
殆ど障害者雇用や発達障害の悩みについての内容ですが、少しだけExcelやスプレッドシートの「障害者雇用のお仕事で特に役に立ったショートカットキー」についてまとめております。
Kindle版
皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・
こちらも多摩モノレールの写真になります。
仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!
こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。
※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪


最後までご精読、誠にありがとうございました!!
フォトストック写真ACさんのプロフィールページ
最後までお付き合い頂き、誠にありがとうございました!!
あああ