リストから項目別データを素早く抽出する方法
こんにちは。
今回は昨日Twitterでもつぶやきましたが、GoogleSpreadsheetを使って下の画像のようなリストから所属団体別に活動名を分ける(抽出する)方法を紹介したいと思います。
(慣れれば一瞬でできます。)
こちらは昨日、Mリーグのチームの一つであるEX風林火山からTwitterにて発表された『IKUSA』への出場選手一覧をコピペしたものです。
(麻雀に興味ない方はなんのこっちゃわからなくても大丈夫ですw)
この一覧の隣に、C列にある所属団体別に選手名を分けた表を作っていきます。
結論から先に言うと、下の画像のようにE2セル・E3セルに数式を入れ、E3セルの数式をI3セルまでオートフィル(数式コピー)するだけです。
すると下図のように一瞬で団体別に選手名が抽出できます。
とても簡単ですね。
あとはお好みで行・列のサイズや、フォント、配色等を整えていただければ完成です。
では、E2セル・E3セルに入れた数式の説明をしていきます。
まず、E2セルに入れた数式内のUNIQUE(C3:C)と言うのは、C3セルからC列最終行までの範囲で重複しない値(一意の値)を返してくれます。
ですがこれだけですと範囲を縦に指定していますので抽出されたものも縦に表示されてしまいます。ですのでTRANSPOSE関数の中に先程のUNIQUE(C3:C)を入れて=TRANSPOSE(UNIQUE(C3:C))とし、C3セルからC列最終行までの値を重複しない形で下図のように横に表示させています。
次にE3セルの数式ですがQUERY関数というのは指定した範囲から様々な条件で結果を返してくれるとっても便利な関数です。
今回の場合は最初の第1引数である$B:$CはB列・C列全体を範囲として指定しています。後でオートフィルするので$を付けて絶対参照にしておきます。
続いてカンマ(,)を打ち、次のカンマまでの間のダブルクオーテーション("")で挟まれた部分が抽出する条件となります。
最初のselect Bというのは「B列から抽出してね」という意味で、第1引数で指定した範囲の中から抽出したい列を指定しています。
これは第1引数の範囲内であればいくつでも指定出来ますし順番も指定出来ます。(複数列指定の場合は列番号をカンマで区切る、列番号は必ず半角大文字で入力)
次のwhere C='"&E2&"'というのは「C列の値がE2セルと同じものだけを抽出してね」という意味になります。
この条件指定の仕方がちょっと複雑で説明が難しいので、詳しく知りたい方はこちらの動画を参考にされるといいと思います(テキトーw)
このQUERY関数というのはとっても便利な関数で、エクセル等には無いGoogleSpreadsheetと独自の関数です。
Mリーグ 赤坂ドリブンズの園田賢プロもYou Tubeのライブ配信内でとっても大好きな関数と仰っていましたw。
1:15:45くらいから。
さて、数式の説明は以上となりますが、最後に私もしょっちゅう使っているQUERY関数での抽出の一例を紹介したいと思います。
下図は私が趣味で行っているMリーグデータのデータベースのうちのひとつで、先週までののMリーグ対戦データが入っています。
こちらから今シーズンの半荘最高得点トップ10をステージ、対局日、選手名、チーム、ポイント、着順、終局時持ち点の列順で抽出したいと思います。
新しいシートを用意して、任意のセル(今回はA1セルに入れました)に下図のような数式を入力します。
詳しい数式の説明は割愛しますが、一つのセルに数式を入力するだけで抽出されます。
はい!凄くないですか?
この他にもいろいろな条件を組み合わせて数式一つでデータを抽出できるんです。
興味が湧いた方はいろいろ調べてみてください(テキトーw)
私はもうQUERY関数無しでは生きていけませんw
では今回はこのへんで。🙇♂️