Google spredSheetを使ってみた(VLOOKUP関数)


GoogleSpredSheetですね。

会社などでもSaasを取り入れていればGoogleWorkSpaceからスプレッドシートでの進捗管理や工程、工数管理をする方もいると思います。

※さて、GASが人気らしい、というかニーズが高い。(※2022年の6月に観たエンジニアの方の動画)

GASは詳しくはネットでお願いしやす。youtubeとかおすすめ。
基本はjavascriptなんですけど、微妙に挙動が違うので。
紹介しない理由は私が詳しくないから!m(__)m

はい、基本的ではあるのですが知っておくと便利なことを紹介します。
(せっかくですがQuery関数は難しくなくてとても有用だと思いますが紹介しません)。

VLOOKUP関数どうやって使うか

給与の計算だったり、事務している方はVLOOKUP使いますよね。
源泉徴収とかでも使った経験はあります。
会社によってはソフトを使ってマシンにまかせてる部分があると思います。

で、以下のよう表を準備しています。


とりあえず、対象となる「しいたけ」のpriceを知りたい。とする
【おさらい】
1. pirceの下(出力させたい部分)に「=vlookup」

2.見つけたいのが、「しいたけ」なので「対象の範囲」をB2からC6まで選択、F4キーで固定。
すみません行番号が見切れています。
3.priceは2列目ということがわかっているので三番目のパラメータは2
4.完全一致なのでfalseとします。

スプレッドシートが気を聞かせてくれてもう答えだしたがってますね!
実際関数入力してあげると正しく¥1980 とでました。

なお、先ほどの対象となるテーブルで「しいたけ」と「し いたけ」
があります。そして「しいたけ」のpriceは19,80正しく読み取りたいのは「しいたけ」でしたので
オッケーです。
今度は部分一致で検索してみました!

「しいたけ」ではなく「し いたけ」のほうの値段が出ましたね。
vlookup関数の部分一致の積極的利用は大体「20代は~プラン」「30代は○○プラン」
みたいな設定をしていて顧客テーブルに23歳、28歳、32歳 etcなどの方がいるときに使うと便利です。(ちょっと話題がずれました)

参照テーブルに変化が加わった場合


じゃあ参照していたテーブルに変更が加わった場合どうなるのでしょうか。
どうなるか試しに実際に、saleという列を挿入しました。
関数は(関数式として)セル内に残ったまま。

以下のようになりました。

関数式が参照テーブルの2列目を検索しているので、priceでなく、「しいたけ」完全一致の「sale」
が出力されました。
priceが知りたい場合、もちろん3列目に参照のテーブルが移動したので
上記の画像のVLOOKUP関数の3番目のパラメータがpriceを取得するように「3」に変更してもうまくいきます。
ただ、今回のように少ない列数、少ない変更であればこれでよいのですが、しいたけもりんごもばななもprice求めていた場合、saleでなくそれぞれのpriceを求めようとすると2を3に変える作業が面倒です。
また、やっぱりsaleの列削除!とか別の列追加 ってなってしまうと一つ一つの関数をパラメータを変更しないといけなくなってしまいます。それは面倒です。汎用性ないですね。

そこで、私のやり方としては、columnを使います。column(E:E),column(C:C)は
それぞれ参照テーブルから列の値をとってきます。この方法であれば、
参照テーブルに列が追加されたりしても、目的の値を参照することができます。
3列目にはcolumn(E:E)-column(C:C)+1 (+1しているのは目的となる値が格納されている列の値と
参照する列の値の差だと1つぶんずれるからです)

参照テーブルに変更をさらに加えた場合

今度はtestという列を参照テーブルに挿入してみました。元の関数は先ほどのcolumnを使用した例と全く変わっていませんが、目的の値を正しく取得することができています。
columnを固定していないため column(E:E)がcolumn(F:F)へ移動してくれるわけです。

はい、こんな感じでVLOOKUP関数を少し汎用性がある使い方ができるというものでした。

今回はvlookup関数でcolumn関数を使うと便利 ということでしたがvlookupおいておいて行に関するrow関数も使って便利なことができますよ。

RDB~データベース設計~

いやそもそも、ちょっとカラムやフィールドに変化が加えられるだけで、ややこしいことしなたくない。 ということで、
リレーショナルデータベースなんかはデータベース設計されてます。
退職した社員とか!同一社内で異動したけどIDかわらない社員とか!

ただ、チーム数名で進捗管理する分にはスプレッドシートなんかでちょこちょこやってるんでしょうか。そんな気がする。経験的にたぶんそうだったと思う。

コメント

タイトルとURLをコピーしました