プロが教える店舗&オフィスのセキュリティ対策術

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

上記の計算式で一応計算できているようなのですが、
配列関数というのがなんなのか良く分からないのです。
これで大丈夫なのでしょうか?
お詳しい方ご助言をお願いします。

A 回答 (1件)

こんばんは



>{=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))
で試してみて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速参考にさせていただきます。

お礼日時:2003/04/21 23:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!