swatanabe’s diary

ラノベ創作、ゲーム、アニメ、仕事の話など。仕事はwebメディアの仕組み作り・アライアンスなど。

【スプレッドシート関数】データが入力された一番下のセルを自動で参照する

やりたいこと

  • ある列の一番下にデータが入力されたとき、そのセルのデータを自動で参照する

 

 

たとえば上図のように、B列に売上(積み上げ)、C列に各日の目標(C2/31の値の積み上げ)、D列に月次目標(=C2)に対する進捗率があるとします。このとき、D2に最新の進捗率、つまりD列の一番下の進捗率が自動で表示されるようにします。

普通に考えれば、積み上げじゃなくて各日の売上を入力して、B2にSUMで売上の合計を計算。それをC2の月次目標で割ればいいだけの話なのですが、そうはいかないケースもあるということで。

 

関数

indirect("D"&counta(D3:D)+2)

これをD2に入力するだけ。ちなみにB2セルにも、最新の売上合計を表示するために同じような関数が入っています。+2しているのは、D列の参照が3行目からの影響で、これがないと返すセル番地がずれるからです。

今はD列の一番下のデータ、D14の値(36.50%)が表示されていますが、たとえばD15に何らかの値を入れると、D2の値も自動でD15の値に変わります。

 

indirect関数の用途といえば、プルダウンのリスト作成がおなじみ。というか、それくらいでしか使われない関数という感じもしますね。そもそも挙動が分かりにくいヤツなので致し方なしでしょうか。

そんなindirect、挙動を理解すると実はいろいろ便利な機能を実装できるニクいヤツでして、これはその一つ。だいたいどの職場でも地味に役立つ便利な使い方で、いつもお世話になっています。まだまだ試してみたい使い方がたくさんあるので、いつかガッツリ使い倒してみたいですね。

 

とりあえず、そんなところです。

眠いので、寝ます。