Googleシートで良く使う関数メモ(適宜改定&追加予定)
作業用メモなので説明は入れたり入れなかったりでゆるく追加してきます。
IF
複数条件のどれか1つに一致する(OR)
=IF(OR(A1="条件1", A1="条件2"), "どれかに一致する", "一致しない")
複数条件全てに一致する(AND)
=IF(AND(A1="条件1", A1="条件2"), "全て一致する", "どれか一致しない")
VLOOKUP
一致する情報を検索して表示する
=vlookup(A1, $B$1:$C$10, 2, false)
A1セルの内容が、B1~B10の内容と一致していれば、一致しているC1~C10の内容を表示する
Excel時代から最も使える関数でしたが、たくさんvlookup仕込むとシートが重くなる点がネック。
UNIQUE
重複データの排除
=unique(A:A)
A列全ての項目から重複項目を除外したリストを取得表示する(SQLだと、Distinctのこと)
googleシートでは対象項目のリストとかを抽出するのによく使います
SUBTOTAL
表示されている値の集計(フィルタで絞った内容を反映させる集計関数)
=subtotal(9, A2:A1000)
A2からA1000の値の合計値を出す
一般的にはSUM関数を使うと思いますが、フィルタで絞った時の値を確認するにはSUBTOTALが便利なので、個人的にはこちらを使うことが多いです。
1つ目の引数を変更すると平均値なども出せる
引数 | 1 | 2 | 3 | 4 | 5 | 9 |
---|---|---|---|---|---|---|
集計方法 | 平均 | 数値の個数 | データの個数 | 最大 | 最小 | 合計 |
SUMIFS
条件一致した値のみの合計値を算出する
=sumifs(A2:A1000, B2:B1000, "1")
A2からA1000の範囲に対して、B2:B1000に1が入っている項目のみの合計値を出す
AVERAGEIFS
条件一致した値のみの平均値を算出する
=averageifs(A2:A1000, B2:B1000, "1")
A2からA1000の範囲に対して、B2:B1000に1が入っている項目のみの平均値を出す
IMPORTRANGE
他のGoogleシートの値を取得する
=importrange("https://docs.google.com/spreadsheets/d/{googleシートのID情報}", "{シート名}!A:D")
他のGoogleシートの特定情報を取得する(リンクを貼る)
データベースなどからGoogleシートに値を持ってくる場合、一意性を保つため(誰かがシートを消したりする可能性がある)に、importrangeで他シートから値を引っ張ってくる場合などに利用します。
GCPなどを利用しているとgoogleシート接続が楽チンで、誰でもアクセスしやすい。というメリットがある反面、複数担当者がシート上のデータを触ることになる為、誤って削除する。などの事件もやや起きやすい為、データベースと直接接続するシートと作業用シートは権限を分けて別管理しておく方がやや安全です。
Googleシートは履歴管理されている為、復旧自体は楽てはありますが、対象シートが増えてくると一定の手間になるので。
ROW
行番号を自動採番する
=row()-1
row関数で対称行が何行目か?がわかるのでそこからヘッダーなどの行数を引いてあげると自動で番号が取得可能
COLUMN
列番号を自動採番する
=column()-1
row関数で対称列が何列目か?がわかるのでそこからヘッダーなどの行数を引いてあげると自動で番号が取得可能
IFERROR
関数にエラーが発生した場合に表示する値を設定する
=iferror( if(A1=1, A1*B1, 0), 2)
上記では、A1セルに1が入っている場合、A1*B1の値を表示、それ以外は0を表示というIF文が入っているが、B1に数字以外の項目が入っていた場合は、エラーとなり#VALUE!というエラーが発生するが、iferrorで囲っておくことで、エラーが発生した場合は2を表示する。という形になる。
結構データの量が多くなるとこう言ったエラーも発生するため、個人的には利用頻度が高い関数です。
COUNTIF
条件にあった行をカウントする
# A1:A10のセルに1が入っていたらカウントする
=countif(A1:A10, 1)
# A1:A10のセルにスペースが入っていたらカウントする
=countif(A1:A10, "")
# A1:A10のセルにスペースが入っていなかったらカウントする(not=的な使い方)
=countif(A1:A10, "<>")
日付関数
日付の操作(色々)
# 本日の日付を取得
= today()
# 日付から年を取得
=year(today())
# 日付から月取得
=month(today())
# 日付から日を取得
=day(today())
# 日付から来月同日を取得
=edate(today(),1)
# 日付から前月同日を取得
=edate(today(),-1)
# 日付から1年後の同日を取得
=edate(today(),12)
#日付から今月末を取得
=eomonth(today(),0)
#日付から来月末を取得
=eomonth(today(),1)
#日付から前月末を取得
=eomonth(today(),-1)