• ベストアンサー

エクセル関数で(A:A)が使えない?

=SUMPRODUCT((A:A=C1)*(B:B=D1),C:C) とやったところエラーになりました。 そこで、=SUMPRODUCT((A1:A567=C1)*(B1:B567=D1),C1:C567) に書き直したら出来ました。 関数によって(A:A)が使えない場合があるのでしょうか。 毎月データ数(行数)が変動するので、(A:A)が使えないのなら、(A1:A30000)としようかなとは思っているのですが、疑問に思いましたので、質問させていただきました。

noname#153814
noname#153814

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 ヘルプの「仕様」の中に、 #ワークシートの配列   使用可能メモリに依存。 #また、配列では列全体を参照することはできません。たとえば、配列で列全体 C:C や範囲 #C1:C65536 を参照することはできません。 となっていますので、配列数式を用いるときは、列全体を指定することが出来ません。 なお、詳しく、この挙動を調べてみると、空白の部分は配列数式では認識はしているのですが、メモリの負担にはなっていないようです。本当に、配列数式が自由に使えるようになったのは、Excel2002以上からです。それまでは、他にも配列個数の制限が存在していました。(Excel2000の仕様は、Excel2002と同じように書かれてはいましたが、それは違っていたようです。)

noname#153814
質問者

お礼

そのようですね。 ありがとうございました。

関連するQ&A

  • エクセル関数 SUMPRODUCTについて

    エクセル関数でSUMPRODUCTについて質問させていただきます。 ↓A1 コーラ  A ポカリ  A 珈琲   A 石鹸   B 洗剤   B ポカリ  A 食パン  C 菓子パ  C 洗剤  B   3←C11(Aの数を数えています。) と、入力されているデータにおいては、 =SUMPRODUCT((MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0)=ROW($A$1:$A$9))*($B$1:$B$9="A")) の関数で求めるデータが出ることはわかりました。 (Aの数は4個ですが、ポカリがダブっているので3個として数えるように設定したいのです。同じ様にBの数は洗剤が2つあるので2個として計算します。) しかし、A1~C11のデータをすべて切り取りして 例えばA11からC21に貼り付けた場合はC21の計算結果が”0”になってしまいます。 その際のC21の関数は =SUMPRODUCT((MATCH($A$11:$A$19&$B$11:$B$19,$A$11:$A$19&$B$11:$B$19,0)=ROW($A$11:$A$19))*($B$11:$B$19="A")) になっています。 この場合だと具体的にどのように関数を変化させればいいのでしょうか? ご指導いただければありがたいです。よろしくお願いします。<m(__)m>

  • エクセル SUMPRODUCT関数について教えてください

    エクセルで作成した表から ○○かつ●●のデータ個数を求めたく、 SUMPRODUCT関数を こちらで調べておりましたが どうしても解決しない部分があります。 どうぞ よろしくお願いいたします。 下記8桁数字は、日付です。 カウントしたい数は、B列(終了)が、A1セルに入力された年月かつ、区分(C列)が「A」の数です。 =SUMPRODUCT((LEFT(B2:B100,6)=A1)*(C2:C100="A")) こちらで、『B列=A1セル かつ C列="A"』のみのカウントは出来たのですが、 終了延長(D列)が空欄でない場合は、D列日付データの方をカウントする。 早期終了(E列)が空欄でない場合は、D列・B列よりも E列を優先し、カウントする。という条件を付けたいのですが、 Sheet1 A1セルに「200810(数を調べたい年月を入力)」 (開始)  (終了)     (区分)  (終了延長)  (早期終了)  A列     B列      C列     D列      E列 20061001   20081001   A    -        - 20070926   20081020   A    -        - 20071102   20081009   A    20081201    - 20080101   20081013   B    -        - 20080208   20081010   A    -        20080210 ・・・ この場合、「2」となるようにです。 IF、OR関数あたりかな と考えておりますが、SUMPRODUCT関数のどの部分で条件付ければ良いか解りません。 説明下手で大変申し訳ございませんが、ご助力いただければ幸いです。 

  • エクセル関数のことで困っています。

    今、簡単な表計算の表を作っていますが、先に進まず困っています。 A1~A200のセルに1~200の番号が昇順で入っています。そしてデータとして,B2,C2,D2,E2 に各々a、b、c、dが入っており,,B3,C3,D3,E3 にa1、b1、c1、d1・・・・・・・・・・・・B200,C200,D200,E200にw,x,y,zのようにB,C,D,E列に適当な数が入っています。 そこで、E列の値で昇順  SMALL(D$1:D$200,A1)  に並べ替え、同時にB,C,D,Eの値も返したいのです。つまりエクセルの並べ替え機能を関数で自動で行いたいのです。 今は、関数の、ROW,SUMPRODUCT,COUNT,INDEX,LARGE,COUNTIF,COLUMN,などを使い関数バーに5行ほどになり、処理にとても時間がかかります。 何とか、簡単で早い計算式はないでしょうか。 よろしくおねがいします。

  • ■エクセル■ PRODUCT関数で「~ではない」。

    早速ですが、例えば、 ・A1~A10の範囲に1~5が入っている。 ・B1~B10の範囲に文字列「あ」~「お」までが入っている。 ・C1~C10の範囲に個数が入っている(1~99の数字)。 この場合で、D1のセルに「A1~A10の数字が5で、「お」以外の個数の合計」を求めるときはどういった関数を使えばいいのでしょうか?? =SUMPRODUCT((A1:A10=5)*(B1:B10<>"お")*(C1:C10)) と、入力してもエラーが出てしまうので、困ってます。どうしたらできますか?? よろしくおねがいします。

  • エクセルの関数について

    A列に抽選会の回数(1~100)、B列に当選番号(1~10)、C列に賞品番号(アルファベット1桁+数字3桁)が3000件 位あるデータがあります。 例えば、検索値として、A列の抽選会回数=5 & B列の当選番号=3 & C列の賞品番号="1桁目がDのデータ全て" の データ数を求めたいのですが、どのような式を使えば良いでしょうか? 先日この質問ページで、『SUMPRODUCT』を教えていただいたので、下記の様に指定してみましたが、当然(?)駄目でした。 SUMPRODUCT((A1:A3000=5)*(B1:B3000=3)*(C1:C3000="D***")) ちなみに、オートフィルターは使用したくありません。 宜しくお願いします。

  • エクセル SUMPRODUCT関数でOR検索

    添付画像のような表があります。 '=SUMPRODUCT((B:B="男")*(C:C="新潟")*(D:D="B")*ROW(A:A)) で、B列が男、C列が新潟、B列がB のデータがある行番号を返してくれます。 B列がBではなく、B列がAまたはABのデータがある番号を検索する場合はどうかなと思い、 '=SUMPRODUCT((B:B="男")*(C:C="新潟")*OR((D:D="A"),(D:D="AB"))*ROW(A:A)) としてみたら、該当データがないにもかかわらずB列がBの行番号が帰りました。SUMPRODUCTで検索する場合、ORを使う場合はどのように書けばよいのでしょうか? ’=SUM(SUMPRODUCT((B:B="男")*(C:C="新潟")*(D:D="A")*ROW(A:A)),SUMPRODUCT((B:B="男")*(C:C="新潟")*(D:D="AB")*ROW(A:A))) のようにそれぞれを求めて合算するしかないのでしょうか?

  • 関数の書き方がわかりません。(エクセル)

    エクセル関数の書き方についてです。 宜しくお願いします。 B2にはA2からA15までに入力された値が何種類あるか出力する関数です。 B2=SUMPRODUCT(1/COUNTIF(A2:A15,A2:A15)) 15は行の最終行を B1=COUNTA(A:A) として出しています。 (実際は1000~1500位で変動します) A15の部分をB1を使って書き換えたいのですが エラーが出てうまく書けません。 お暇なときにでも回答をお願い致します。

  • エクセルの関数について質問。

    データベースから2つ以上の条件が合うデータの個数を数える式を作りたいのです。 例えばある人が何を何回買ってるかを調べる感じです。 SUMPRODUCT関数を使って SUMPRODUCT((B:B=B1)*(C:C=C1)) みたいにしたかったのですが、#NUM!のエラーが出ます。 多分B:Bが大き過ぎるんだと思うのですが、増えていくデータベースを全部検索させるには他に方法ありますか?他の関数でも良いです。

  • Excelの関数について教えてください。。

    単純に引き算をしたいだけなのですが、 引く順番と言いますか、優先順位があります。 これを関数で組むことができれば大変助かります。 A300、B1,500、C500、D10,000 とありましたら、 このA、B、Cの合計から毎回15,000を引かなくてはなりません。 ※A、B、C、Dは毎月変わります。 ですが、15,000にA、B、Cの合計が満たない場合は、足りない分をDから引きます。 これを関数で組むことは可能でしょうか?? 関数を組みたいのは黄色のセルです。 説明が下手で申し訳ございません。。 どうぞよろしくお願いいたします。

  • エクセルの関数の件でご質問です。

    エクセルの関数の件でご質問です。 以下の通りのデータがあって複数の条件で計算をしたい場合、どうしてもうまく関数が作れません。 A   B   C 新聞 2   1500 雑誌 3   1900 新聞 2   2000 TV  4   5000 (1)新聞(A)で2(B)以上のBの合計 (2)新聞(A)でのCの値の合計 (1)ではSUMPRODUCTを用いて算出をしようと試みましたが正しい数値になりません。 (2)はSUMPRODUCTではなくてもいいような気がします。 どの関数を用いて上記の条件で算出するにはどうしたらよいのでしょうか? どなたか教えてください。

専門家に質問してみよう