ご存知の国民的アニメ、「ドラえもん」のキャラクターの点数を使って、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ボタン」を押して楽しく拝聴しております。
・
・
・
スプレッドシートの学習について、
「本を買う必要はない。」
「本を買って実務に備えよう!」
と、意見が割れていますし、多少脱線しますが、
英語学習でも「英語はYouTubeだけでOK」という意見もあります。
これについて私の意見は、
「本を買う必要があるかどうかは、人それぞれだ!」
です。
私個人の意見として、本を買う必要がない方とは、
・自力でビジネスのチャンスをガンガン掴み取れる方
・自分で調べてドンドン自己成長が出来る自走型の方
・「頭の回転が速い」、「要領が良い」と良く言われている方
です。
逆に本を買った方が良い方は、
・就活や転職、実務に備えて予めビジネスで良く使うと言われる関数やショートカットキーの学習をして準備したい
という、慎重な方です。
人それぞれ状況が異なりますので、あなたにとって最適な選択が出来るように願っております。
迷われた方は、まず、ビジネス・教育系YouTuberの方の動画を紹介している記事の 初めてのGoogleスプレッドシート をご覧になり、気になる動画をいくつか見た後で、
「あとは自分で調べるから、本を買う必要はない」
または、
「動画も見たけれど、仕事に備えて予め準備をしたいから本が必要」
と、「あなたの感覚で」判断して頂けたらと思います。
その上で、やっぱり本も必要だと思われた方に、スプレッドシートの実務で使う技を総合的に身に付けるのにオススメの本で、最初に手に取って頂きたい本と、合わせて学ぶとより一層理解が深まるExcelの本を紹介させて頂きます。
見やすい内容の本で、要点がまとまっており、本に掲載されているQRコードから動画を視聴して、講師の方の懇切丁寧な分かりやすい説明に、学習のモチベーションが上がりました。
(QRコードだけでなく、URLも掲載されていますので、QRコード読み取りが苦手という方にとっても、お手に取りやすい本です。)
ビジネス教育系ユーチューバー、Youseful(ユースフル)の神川陽太(ようた)氏と、代表の長内孝平(おさ)氏が、「分かりやすさ」に徹底追求して教えて下さっているので、安心して学習を進められました。
「本×動画」という新しい学び方について、昭和生まれの私が、新しい学び方なんて大丈夫だろうか・・・と最初は恐々と学習を始めましたが、この本を1冊終えた頃には、スプレッドシートが怖くなくなりましたし、苦手だった複合参照(列のみ固定、行のみ固定)も克服出来ました。
ですので、スプレッドシートを勉強したいけれど、何から始めたら良いのか分からない、とお悩みの方は、是非手に取って見て下さい。
特に、昭和生まれでPCの操作に不安のある方にほど、オススメです!
勿論、平成生まれのお若い方にとっても、昭和生まれの私でさえ安心して学習出来た教材であるという事で、ご検討頂けますと幸いです。
講師の長内氏も神川氏も私よりもだいぶ若い方ですので、私にとってはまさに中高年の学び直しという所ですね。
私と同年代のロスジェネ世代の方は、若い方から教わることに抵抗のある方もいらっしゃるかも知れませんが、Yousefulの講師の方は親しみやすいので大丈夫です!
個人的には動画最後の「See you next time! Bye Bye!!」が大好きで勉強のモチベーションが上がる教材です!!
代表の長内氏のExcelの現場の教科書も併せて学習すると、特に関数が苦手な方にとって、理解が深まります。
・
・
・
皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・
こちらも多摩モノレールの写真になります。
仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!
こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。
※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪
最後までご精読、誠にありがとうございました!!
最後までお付き合い頂き、誠にありがとうございました!!
■ 関連記事 ■
自己紹介
ピボットテーブル
ARRAYFORMULA関数で連番を振る
ARRAYFORMULA関数とIF関数の組み合わせ
IMPORTRANGE関数とVLOOKUP関数の合わせ技
初めてのスプレッドシートに戻る
コロナ禍・アフターコロナに向けてテレワーク対策(Googleが提供するツール)に戻る