質問: 複数の条件を満たすセル数の合計は配列関数を使う? a列 b列 ------------- 1 1 2 2 1 1 3 3 5 4 1 7 5 4 8 6 1 4 7 7 5 8 5 6 9 1 1 10 9 3 上記の表でa列もb列も“1”であるセルの数を数えたいのです。 c列の1~10行目に =if(a1=1,if(a1=b1,1,0),0) と計算式を入力・コピーしその合計を求めることができますが、 計算用の列を作らず、別のシート上のセルに 計算結果のみ表示させたいと思っています。 {=sum(if(sheet1!a1:a10=1,if(sheet1!b1:b10=1,1,0),0))} 上記の計算式で一応計算できているようなのですが、 配列関数というのがなんなのか良く分からないのです。 これで大丈夫なのでしょうか? お詳しい方ご助言をお願いします。
回答: こんばんは >{=sum(if(sheet1!a1:a10=1,if(sheet1!b1:b10=1,1,0),0))} は配列関数ではなく配列数式です 通用は配列を扱わない式でctrl+shift+enterで式を{} で括り配列を扱えるようにします 配列数式を理解するには個々の参照セル単位の式に 分解してみれば簡単です rngoさんの式の場合 {=sum(if(sheet1!a1:a10=1,if(sheet1!b1:b10=1,1,0),0))} はa1:a10 b1:b10 の配列を順番に =if(a1=1,if(b1=1,1,0),0) =if(a2=1,if(b2=1,1,0),0) : =if(a10=1,if(b10=1,1,0),0) と計算して最後に sum() で合計しています。 ちなみに 例記の条件であれば {=sum((sheet1!a1:a10=1)*(sheet1!b1:b10=1))} で可能です 配列関数は、このような{}を付ける入力方法でなく ても配列処理をする関数で 今回の場合 sumproduct() が使えます。 =sumproduct((sheet1!a1:a10=1)*(sheet1!b1:b10=1)) で試してみて下さい。