• ベストアンサー

分かりにくい質問でごめんなさい

Excelで表が作成してあります。 シート1に 店舗名 日付 科目(1) 金額(1) 科目(2) 金額(2)・・ 1013 10/20  8121  3000   4030  500  ・  ・   ・    ・    ・   ・ になっており、シート2には、 店舗コード 店舗名 科目  1013    □店  ? ?の部分に店舗コードと科目が一致した金額の合計値を もとめたいのですがどうしたらよいのかわかりません。 ちなみに、列がV、行が2000以上あります。 一発でシート2に求めなくても、何回かにわけて、最終的にシート2に合計値が入ればよいです。

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

  • ベストアンサー
回答No.2

#1の方の回答で解決すれば、読み飛ばしてください。 質問の内容が、よく分からないのですが、 >?の部分に店舗コードと科目が一致した金額の合計値 1.店舗コードが1013の科目(1)の合計の金額を求める 2.店舗コードが1013の科目コードが8121の金額の合計を求める   (科目検索対象は、科目(1)、科目(2)・・・すべて) 3.上記とは違う方法で、求める。 のどれでしょうか? 2の場合に検索する科目コードはどこに書かれているのでしょうか? SUMPRODUCT関数や、配列数式で1発でできそうな気もするのですが、 具体的な所が良く分からないので、よければ補足してください。

dacchii
質問者

補足

補足します。 2の方法で求めたいです。 検索する科目コードは科目、金額と一個飛ばしで並んでいます。

その他の回答 (4)

回答No.5

#4の回答は理解して頂けたでしょうか? 理解した上での補足という事ですと、私の考え方が違うかもしれません。 一応、 A2セル:店舗コード C2セル:科目コード が入っているとして D2セルに =SUMPRODUCT((Sheet1!$A$2:$A$2000=A2)*((Sheet1!$C$2:$C$2000=C2)*(Sheet1!$D$2:$D$2000)+(Sheet1!$E$2:$E$2000=C2)*(Sheet1!$F$2:$F$2000)+(Sheet1!$G$2:$G$2000=C2)*(Sheet1!$H$2:$H$2000)+(Sheet1!$I$2:$I$2000=C2)*(Sheet1!$J$2:$J$2000)+(Sheet1!$K$2:$K$2000=C2)*(Sheet1!$L$2:$L$2000)+(Sheet1!$M$2:$M$2000=C2)*(Sheet1!$N$2:$N$2000)+(Sheet1!$O$2:$O$2000=C2)*(Sheet1!$P$2:$P$2000)+(Sheet1!$Q$2:$Q$2000=C2)*(Sheet1!$R$2:$R$2000)+(Sheet1!$S$2:$S$2000=C2)*(Sheet1!$T$2:$T$2000)+(Sheet1!$U$2:$U$2000=C2)*(Sheet1!$V$2:$V$2000))) で、私の考えている合計が表示されます。 dacchiiさんの考えている合計と同じか確認してください。 その上で、この式だと長くなりすぎるので、#4の回答に至りました。

dacchii
質問者

お礼

ありがとうございます。 #5の式を編集しようとすると、フリーズを起こしてしまいます。なので確認さぎょうしてません。 #4で上手くできたのですが、データ量が多くなってしまうので、できれば#5を使いたいと思います。 明日又チャレンジしたら結果を報告します。

dacchii
質問者

補足

ありがとうございます。 無事にできました。ちょっと長い式ですが、 がんばってこれで表作りたいと思います。 ありがとうございました

回答No.4

#2、#3で回答した者です。 補足要求をしといてなんですが、 #3以上の数式になっても見づらいので、 店舗コード 店舗名 科目 金額(1) 金額(2) ・・・ 合計 というようにシート2をつくり、 金額(1)は#3の通りで、 金額(2)は=SUMPRODUCT((Sheet1!A2:A2000=A2)*(Sheet1!E2:E2000=C2)*(Sheet1!F2:F2000)) のように科目(1)、科目(2)毎に集計しておいて、 合計の列で=SUM(D2:F2) のようにし、金額(1)、金額(2)・・・の列が邪魔なら、 列を非表示にしておくというのはどうでしょうか?

dacchii
質問者

補足

ごめんなさい、補足します。 金額と科目合わせて20列あります。 なので検索対象は複数になります

回答No.3

補足ありがとうございます。 が、補足して欲しい事が若干違っていたので、再度補足願います。 2の方法でよいという事なので、 店舗コード 店舗名 科目 金額   1013   □店 8121 =SUMPRODUCT((Sheet1!A2:A2000=A2)*(Sheet1!C2:C2000=C2)*(Sheet1!D2:D2000)) のような感じで書けばいいと思うのですが、 これだと科目(1)のみ検索対象になっています。 (1)表示方法は、上記の通りでよいですか? (2)科目(1)、科目(2)・・・いくつ位あるのですか? (3)同一行で、同じ科目コード(科目(1)=8121、科目(2)=8121)という事は存在するのですか?

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

充分テストしてないですが DSUMの応用で、やって見ました。 ただ同一シートでやっているので別シートの場合(下記 D、E列)は、例えばSheet2で、Sheet1!$A$1:&C$9のように変えてやって見てください。 データベース部を別シートにするとエラーになり出来なければご免。 (テストデータ) A1:C9 コード1 コード2 計数 111 11 1 112 14 2 113 12 3 114 11 4 111 11 5 112 13 6 111 12 7 111 12 8 (条件)D1:E7に コード1 コード2 111 11 111 12 112 13 112 14 113 12 114 11 この組み合わせは、人力で作る前提にしています。 (関数式) F2セルに=DSUM($A$1:$C$9,$C$1,$D$1:E2) F3:F7に複写する。 G2セルに=F2、G3セルに=F3-F2、G4:G7に複写する。 (結果)F2:G7に 6 6 21 15 27 6 29 2 32 3 36 4 がでます。 G列が答えです。 上から累積されて計数和が出るので=F3-F2とかして 後の行だけの条件を満たす計数和を出しています。

関連するQ&A