- 締切済み
SUMPRODUCT関数について
皆様宜しくお願いします。 最近こちらでSUMPRODUCT関数をお教えいただいてから色々な集計に使っていて、かなり重宝しております。 ところで、私は簡単な集計にはSUMIF関数やCOUNTIF関数等を、複数条件にはSUMPRODUCT関数を使用しているのですが、集計作業においてSUMPRODUCT関数では出来ないものってどんなものでしょうか? お暇なときにご返答をいただければと思います。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
ここへの回答の多くで使われているSUMPRODUCT関数を使ったものは SUMPRODUCT関数の本来の使い方ではなく、SUMPRODUCT関数の特性を利用したものです。 配列数式の設定やデバッグが面倒なので、自動的に配列としてパラメータを指定出来るSUMPRODUCT関数を使っているように思えます。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >集計作業においてSUMPRODUCT関数では出来ないものってどんなものでしょうか? 回答はあってないようなものですね。全体の分母が決まっていないまま、ある事象の数個の条件に満足しても、それ以外の条件を挙げるということは、集合の論理としては、成り立ちません。全体が決まっていて、それに対して、該当する集合と該当しない補集合が成り立つのであって、この場合は、全体が決まっていないわけですから、補集合が成り立ちませんね。 ただ、先日、同様の質問で、SUMPRODUCT を考えてみましたが、 個々の引数に関して、 あくまでも、引数として、配列になっているものが、ひとつの条件です。 配列数式自体は、SUMPRODUCT では不可能です。 例: =SUMPRODUCT(IF(ISNUMBER(A1:A10),1,"")) これはSUMPRODUCT は生きていません。中の引数は、配列ではなく、配列数式だから、成り立ちません。この場合は、SUMPRODUCT なしで、配列確定(Shift+Ctrl - Enter)をすればよいわけです。これは、並べ替えの関数、LARGE, SMALL で、支障が出てきますので、かなり工夫が必要になってきます。 また、いくつかの関数で、配列を受けないものがあります。 例:N関数 =SUMPRODUCT(N(A1:A10)) これらの関数に関しては、Microsoft 側では公開していませんので、個々に試してみなくては分かりません。ある程度は、時代的に古い関数が、配列を引数に取らない傾向にあります。例えば、RANK関数が、それにあたります。なぜ、変更しなかったかというよりも、ほとんど、過去の関数のオリジナリティは、Microsoft 側にないからなのだと思います。 それから、配列は、列全体(例:A:A) というようなスタイルは受けられないということです。
- imogasi
- ベストアンサー率27% (4737/17069)
質問が広範囲すぎて、どういうケースを言っているか、回答者側に質問を回されて、探し捉えるのは難しいのですが この質問コーナーの質問の回答を見る限り、複数条件の集計では、ほぼSUMPRODUCT関数で賄えると思います。 こういう一般的な質問の回答は余程経験を積み記憶力の良い人で無いと答え難い。具体的な場合があれば聞く、また答えるでどうでしょう。 また当質問はSUMであり論点がずれますが、条件付き平均などを出すときに、SUMPRODUCTは(SUMPRODUCTでの合計)/(SUMPRODUCTでの件数合計)になり、直接的ではないと思う。 また双対性がある(一方で解ければ他方でも解ける)ように見える、配列数式とSUMPRODUCT関数ですが、配列数式で解けるが、SUMPRODUCT関数で表現するのが難しいと感じるときが、時どきありますが、それも小生が多少の時間では出来ないだけ、知ってる人ならできるのかもしれませんが。