- ベストアンサー
エクセル2007でマクロを使わずに集計する方法
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
F3セルには次の式を入力しF3セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF($E3="","",SUMPRODUCT(($B$3:$B$1500=$E3)*($C$3:$C$1500=F$2)))
その他の回答 (3)
- shincha119
- ベストアンサー率42% (95/226)
countifs関数を使えばいけます。 例を参考にすると以下の様になります。 集計表Aの良を集計するF3セルは =COUNTIFS(B3:B9,E3,C3:C9,F2) B3:B9は品名の範囲、カンマの後のC3は品名の範囲で指定する名前、 同じくC3:C9は評価の範囲、カンマの後のF2は評価の範囲で指定する名前となります。 集計表のAの不良を集計するG3セルについては =COUNTIFS(B3:B9,E3,C3:C9,G2) となります。 ただこれだと全品調査表と集計表が同じ位置にあるため、コピー&ペーストで式を移すと 範囲にズレが出るので、その辺の調整は必要になるかと思います。
お礼
具体的な解説をしていただきありがとうございます。 お礼が間に合わないほど多数かいとういただき、感謝いっぱいです。 参考にさせていただきます。 全部をベストアンサーにしたいですが、できませんので 先着順とします、ご了承ください。
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答1,2です。 品名数も多いので品名も自動で表示させるとすればお示しの表がシート1に有るとして作業列をD及びE列に設けます。 D3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(B$3:B3,B3)=1,MAX(D$2:D2)+1,"") E3セルには次の式を入力して下方にオートフィルドラッグします。 =B3&C3 お求めの表をシート2に表示させるとしてA1セルに品名などと入力してから、A2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$D:$D,ROW(A1))=0,"",INDEX(Sheet1!$B:$B,MATCH(ROW(A1),Sheet1!$D:$D,0))) B1セルには良、C1セルには不良と入力します。 B2セルには次の式を入力してC2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF($A2="","",COUNTIF(Sheet1!$E:$E,$A2&B$1)) これでどんなに品名などを含めたデータが多くなっても速やかに計算表示されます。
お礼
重ね重ねご回答ありがとうございます。 順次参考にさせていただきます。
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No1です。 先の式ではデータ多くなると計算に負担がかかります。負担もかからずに分かり易い方法は作業列を作って対応することです。 例えばD3セルには次の式を入力して下方にオートフィルドラッグします。 =B3&C3 その後にF3セルには次の式を入力しG3セルにオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF($E3="","",COUNTIF($D:$D,$E3&F$2))
お礼
更に簡潔な式でのご回答ありがとうございます。 とりあえずは、No1回答をマスターしてから、この式を勉強することにいたします。
お礼
早い回答ありがとうございました 教えていただいた式で完璧でした SUMPRODUCT関数は奥が深そうなので、これを機に一層勉強させていただきます。