ミネムラ珈琲ブログ

AI画像Tシャツ屋/ITラノベ著者/さすらいのコーヒー屋/WEBサービス開発チームマネージャーの日記

Spreadsheetsで条件付き中央値(medianifs的なものを標準関数で計算する)

KPIの監視とかでアクセス数とかシェア数とか、多くは低く滞留していて上は指数的に伸びるものをウォッチする時、Sumifsでも、averageifsでも上の伸び方に引っ張られて実態が見づらい。

中央値を見ていきたいんだけど、残念ながらmedianifsという関数はGoogle Spreadsheetsにはない。

自作関数使うと他で使う時面倒なので、調べた。

日本語は雰囲気調べにくくて、spreadsheet medianifみたいな感じでググると幾つか出てくる。

一番素直そうなのはコレ。

https://productforums.google.com/forum/#!topic/docs/nqduvIFvlF0

=ifError(median(filter(B1:B10,A1:A10="BUY")),0)

ただし問題があって、B1:B10の中に、欠損値が交じると、エラーになってしまう。 なので、欠損値である場合をfilterの条件に加える。

=ifError(median(filter(B1:B10,isnumber(B1:B10),A1:A10="BUY")),0)

これで欠損値を無視して中央値を求められる。 あと、iferrorはエラーケースをちゃんと把握したいし、欠損値を除けばない前提なので外しておく。 (公開後、行数指定記述がキモくなったので削った B1:B10⇒B:B)

=median(filter(B:B,isnumber(B:B),A:A="BUY"))

PR

Googleスプレッドシートをテーマにした小説を書きました