• 締切済み

SUMIFSの代わりに配列を使いたいがエラーになる

ExcelでSUMIFS関数を用いて集計を行っています。ただし集計を行う上で別のExcelファイルから参照をしているため、SUMIFS関数で算出した結果を表示するには参照しているExcelファイルを開く必要があります。 参照しているファイルをいちいち開くと手間がかかるので、別の方法を検討したところ、配列の{=SUM(IF・・・を用いることで可能だということがわかりました。 同僚が作成した配列の式をもとに作成を行ったのですが、配列中で参照しようとしている列ではエラーもしくは0が表示されます。(本来は別の集計された数字が表示されます) 同僚が作成した配列の式では例えばO列を参照してエラーもなく表示されるのですが、私が追加したAI列ではエラーとなります。 何か配列の式を作成する上で定義すべきことなどがあるのでしょうか? もしくはSUMIFS関数以外に参照ファイルを開かずに解決できる方法がございましたらご教示をよろしくお願いします。

みんなの回答

  • Nouble1
  • ベストアンサー率100% (1/1)
回答No.3

失礼、 誤解を 孕み易い、 記載を 認めました。 故、 お詫びの 上、 注釈を 示します。 該当文面、 「さて、 両ファイルを 開きます。 式を 書き込みたい、 セルに、 =参照先ファイルセル範囲 こう 書き込んでください。」 注釈、 勿論ですが、 式として「参照先ファイルセル範囲、」 とは 書かず、 実セル 範囲指定に、 読み替えて、 読み替えた ものを、 式に お書き込みください。                 以上。 なんとも、 紛らわしい 内容を、 示し、 済みませんでした。

  • Nouble1
  • ベストアンサー率100% (1/1)
回答No.2

〉参照しているファイルをいちいち開くと手間 いえいえ、 とても 単純な、 拍子抜けするような、 方法で 十分ですよ。 さて、 両ファイルを 開きます。 式を 書き込みたい、 セルに、 =参照先ファイルセル範囲 こう 書き込んでください。 たった此だけで、 参照先ファイルを 閉じても、 参照され続けますよ。 又、 任意条件で 集計したい、 場合は、 少しだけ 応用して、 =SUMPRODUCT((参照先条件記載セル範囲=指定条件値)*(参照先集計値セル範囲)) 此だけで、 参照先ファイルを 閉じても、 参照され続けますよ、 何とも 拍子抜けする位、 単純ですよね? 例えば、 参照先ファイル名が OKWEBenglaw様01-01 条件記載セル範囲が Sheet1'!$A$1:$A$1000 集計値セル範囲が  Sheet1'!$B$1:$B$1000 と、 した 時、 =SUMPRODUCT(('[OKWEBenglaw様01-1.xlsx]Sheet1'!$A$1:$A$1000=$A$1)*'[OKWEBenglaw様01-1.xlsx]Sheet1'!$B$1:$B$1000) 書き込み後は、 参照先ファイルを 閉じても、 記載内容が 自動的に、 変わり、 ファイルを 参照し続けるので、 こうするだけで 十分ですよ。 尚、 配列数式中で SUM構文を、 使用するのは お勧めできません。 何故なら、 特殊な 機能が、 SUM構文には 盛り込まれているので、 値が 常に、 同じではなく。 故に、 信頼性に 欠けるからです。 まぁ、 抑も そんな、 複雑な 式を、 書かなくても 十分なのですから、 不要ですよね。

  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.1

できますよ、数式の書き方が間違っていると思います。 具体的な事が書いてないので、これ以上答えようがありません。 こちらで勝手に例を決めます。 Book1のA1~A10 が"A" の場合、B1~B10 を加算 =SUM(IF([Book1.xlsx]Sheet1!A1:A10="A",[Book1.xlsx]Sheet1!B1:B10)) 他の書き方。これなら配列数式にする必要はありません。 =SUMPRODUCT(([Book1.xlsx]Sheet1!A1:A10="A")+0,[Book1.xlsx]Sheet1!B1:B10)