• ベストアンサー

=SUMPRODUCTで、縦列全てを対象とする方法

質問させていただきます。 「SUMPRODUCT」を使って集計表を作成しておりますが、 以下の設定が可能かどうかお教えいただければありがたいです。 現在集計表には、=SUMPRODUCT((A1:A65500="入場者数")*(B1:B65500="本日")) と設定されております。 しかし、AとB列は共に全てを対象としたいと考えておりますので、 出来れば65500という数字を入れずにAとB列を一括設定できないかと思っております。 例えば、「COUNTIF」の場合は、=COUNTIF(A:A,"入場者数")と入力すれば、 A列全てが対象となります。 他の掲示板で質問してみましたが、今のところこの件に関しては回答をいただけておりません。 もし設定方法があれば是非お教えください。 よろしくお願いいたします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

残念ですが数式の仕様上できません。 一度 $A$1:$A$65536で試しましたが$A:$Aに置換されNGでした。 現在は1行目を項目名(列の見出し)として $A$2:$A$65536を「挿入」「名前」「定義」で名前付けして使うようにしています。 EXCEL2007ならCOUNTIFS関数(複数条件でのCOUNTIF) =COUNTIFS(A:A,"入場者数",B:B,"本日") で計算可能です。

ikitaki
質問者

お礼

mshr1962様、ご返答いただきありがとうございます。 仕様上できないということでは仕方ないですね。 複数のセルの条件が一致した時のみカウントするようにということで「SUMPRODUCT」での設定をしておりますが、EXCEL2007であれば「COUNTIFS」で同様の設定ができるということで理解させていただきました。しかし、予算の都合もあり、すぐ・・・という訳にはいかないですね。作業を進めながらわからない事がでてきたら、またこちらで質問させていただきます。本当にありがとうございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

A1:A63535に名前を「あ1」と定義(最終セルから1セル手前) B1:B63535に名前を「い1」と定義 例データ A1:B8 1 1 1 2 1 2 1 2 1 1 1 2 1 1 ーーー 式を =SUMPRODUCT((あ1=1)*(い1=1)) 結果 3 ーー 質問に近いと思うが、何か見落としの誤りあるか不安もあるが。 これは B:B の記法の代わりというより、範囲名の利用ですね。

ikitaki
質問者

お礼

imogasi様、ご返答いただきありがとうございます。 例に挙げていただいたのは当方の質問に近い式だそうですが、当方にはまだ意味が理解できておりません・・・。実際エクセルに式をいれてみたりしてますが、意味がわかってないのでうまくいきません。ちょっと時間がかかりそうですが、問題解決(大袈裟ですね・・)につながるかもしれませんので挑戦してみます。本当にありがとうございました。

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

こんにちは。 ヘルプ(XL2003) の仕様の中に、以下のように書かれています。 #Excel の仕様および制限 #計算の仕様 #ワークシートの配列 使用可能メモリに依存。また、配列では列全体を参照できません。たとえば、配列で列全体 C:C や範囲 C1:C65536 を参照することはできません。ただし、範囲 C1:D65535 はワークシートの最大サイズより 1 行小さく、C 列や D 列全体ではないので、参照が可能です。 SUMPRODUCT 関数の引数は、自動的に配列となるので、上記の仕様に該当します。

ikitaki
質問者

お礼

Wendy02様、ご返答いただきありがとうございます。 わざわざヘルプの内容までお調べいただいて本当に感謝いたします。素人の私にはなぜ最大数が参照できず、最大数より1行小さくないとダメなのかわかりませんが、そういう仕様なら仕方ないですね。私自身もヘルプを見ないわけではないのですが、該当項目を見つけても意味がわからないのがほとんどなのでどうしようもありません。これから少しずつ勉強していきます。本当にありがとうございました。

noname#176215
noname#176215
回答No.2

列での指定はできません。できたとしてもお勧めしませんが…… Excel2007では列参照できるようになっていますが それは計算の仕様 自体が変わったからです。 実際のデータがどの程度か分かりませんが Excel2003以前の Excelで実際のデータ数が その程度あれば PCがフ リーズしてしまう可能性が高いです。 因みに COUNTIF関数は 列指定しても データが入っている最終行まで しか計算しない仕様になっています。 どうしても列指定で計算したければ DSUM関数で計算されてはいかが でしょう。条件式の書き出しは必要ですが 列指定で計算できます。

ikitaki
質問者

お礼

Chiquilin様、ご返答いただきありがとうございます。 当方が扱おうとしているデータ数はかなり膨大なんですが、あまり多いとフリーズしてしまうんですね・・・。実は今回質問させていただいたような集計表はまだ作り始めたばかりで、どの程度のデータ数を扱えるのかを探りながらの作業となりそうです。また、関数等についてはまだこれから勉強しなければならない状態なので、「DSUM関数」というものについても少しずつ調べてみることにいたします。本当にありがとうございました。

関連するQ&A