読者です 読者をやめる 読者になる 読者になる

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"))

仕事で使える!Googleスプレッドシート Chromebookビジネス活用術 (仕事で使える!シリーズ(NextPublishing))

仕事で使える!Googleスプレッドシート Chromebookビジネス活用術 (仕事で使える!シリーズ(NextPublishing))