- ベストアンサー
分かりにくい質問でごめんなさい
Excelで表が作成してあります。 シート1に 店舗名 日付 科目(1) 金額(1) 科目(2) 金額(2)・・ 1013 10/20 8121 3000 4030 500 ・ ・ ・ ・ ・ ・ になっており、シート2には、 店舗コード 店舗名 科目 1013 □店 ? ?の部分に店舗コードと科目が一致した金額の合計値を もとめたいのですがどうしたらよいのかわかりません。 ちなみに、列がV、行が2000以上あります。 一発でシート2に求めなくても、何回かにわけて、最終的にシート2に合計値が入ればよいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#1の方の回答で解決すれば、読み飛ばしてください。 質問の内容が、よく分からないのですが、 >?の部分に店舗コードと科目が一致した金額の合計値 1.店舗コードが1013の科目(1)の合計の金額を求める 2.店舗コードが1013の科目コードが8121の金額の合計を求める (科目検索対象は、科目(1)、科目(2)・・・すべて) 3.上記とは違う方法で、求める。 のどれでしょうか? 2の場合に検索する科目コードはどこに書かれているのでしょうか? SUMPRODUCT関数や、配列数式で1発でできそうな気もするのですが、 具体的な所が良く分からないので、よければ補足してください。
その他の回答 (4)
- taisuke555
- ベストアンサー率55% (132/236)
#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の回答に至りました。
お礼
ありがとうございます。 #5の式を編集しようとすると、フリーズを起こしてしまいます。なので確認さぎょうしてません。 #4で上手くできたのですが、データ量が多くなってしまうので、できれば#5を使いたいと思います。 明日又チャレンジしたら結果を報告します。
補足
ありがとうございます。 無事にできました。ちょっと長い式ですが、 がんばってこれで表作りたいと思います。 ありがとうございました
- taisuke555
- ベストアンサー率55% (132/236)
#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)・・・の列が邪魔なら、 列を非表示にしておくというのはどうでしょうか?
補足
ごめんなさい、補足します。 金額と科目合わせて20列あります。 なので検索対象は複数になります
- taisuke555
- ベストアンサー率55% (132/236)
補足ありがとうございます。 が、補足して欲しい事が若干違っていたので、再度補足願います。 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)
充分テストしてないですが 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とかして 後の行だけの条件を満たす計数和を出しています。
補足
補足します。 2の方法で求めたいです。 検索する科目コードは科目、金額と一個飛ばしで並んでいます。