質問: ◎表計算ソフトの関数で、ある集合を指定するには、別セルに書き出すしかない? ●Excelなどの関数で条件で抽出した集合を扱う場合。 別のセルに、その集合を抜き出すしかないのでしょうか? ●経緯 家計簿の集計をしています。「おやつ」項目から頻出する出費額を知りたいと思いMode関数を使おうとしたのですが、一つのセル内で思った通りの関数がなかなか出来ません。(結局、並び替え機能を使って問題は解決しました。) なぜ一つのセルで、思った通りにモード関数が使えないのかと考えたとき、 ある条件で抽出した集合を、別のセルに書き出さない限り関数内で取り扱えないからだと気がつきました。 以前から表計算ソフトでなんか、不便だと思ってたところは、だいたいこれが原因のようです。 で、本当にこれはできないのでしょうか?それとも、私のテクニック不足? 私は普段マクロも使わない初心者です。 VBAなど難しい機能は使えないので、できれば関数だけで事を処理したいと思っているのですが。
回答: Excel の場合、「配列数式」というものを使うとできたりします。 ちょっと試してみましたので、まずはシートを見てください。 !f:id:a-kuma3:20140211155107p:image D2 が、普通に Mode 関数を使った場合。 D3 は、配列数式を使って、Mode 関数に「おやつ」の行だけを指定した場合です。 「おやつ」のデータは以下のような感じ。 > おやつ: 100,100,200,100,100,200 > > まず、D3 のセルに、以下のように入力します。 > =mode(if(a1:a20="おやつ",b1:b20,"")) > > 普通なら Enter キーを押すところですが、Shift キーと Ctrl キーを押しながら Enter キーを押してください。 D3 のセルにカーソルを合わせてみると、入力した式が中括弧で囲まれているのが分かると思います。 この中括弧が「配列数式として扱っている」という目印になってます。 配列数式は知っていると便利な場面もあるのですけれど、ちょっと上級編な感じ。 ぼくも決まった場面でしか使えなかったりします (^^;