- ベストアンサー
エクセル 同じ列の中の複数条件でのsumif
同じ列から複数条件の一致での合計値を求めたいのですが、うまくいきません。 例えば、A列に都道府県名、B列にそれぞれの人数があったとして、 北海道と東京都と大阪の合計人数を求める場合どうしたらよいでしょうか。 (実際はA列には1万件ほどの様々な言葉がはいります) 何卒よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
SUMPRODUCT関数などを使いますとデータ量が多い場合には計算が重くなります。 作業列を使って対応するのがよいでしょう。 A列での都道府県名はA2セルから下方にあるとします。また、人数もB2セルから下方にあるとします。 C列は作業列として、検索する都道府県名をD1セルから下方に、例えば北海道、東京と、大阪のように入力するとします。 そこでC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(D:D,A2)=1,1,"") そこで合計の人数ですが例えばE1セルに次の式を入力します。 =SUMIF(C:C,1,B:B) これで良いのですが検索する都道府県の数が3件程度でしたら作業列を使わなくとの次の式でもよいでしょう。 例えば検索する都道府県をD1からD3セルに入力するとしてE1セルには次の式を入力すればよいでしょう。 =SUMIF(A:A,D1,B:B)+SUMIF(A:A,D2,B:B)+SUMIF(A:A,D3,B:B)
その他の回答 (4)
- kagakusuki
- ベストアンサー率51% (2610/5101)
ANo.3です。 >SUMPRODUCT関数などを使いますとデータ量が多い場合には計算が重くなります。 という意見もある様ですが、確かに一般的にはSUMPRODUCT関数を使うと計算が重くなりがちですが、ANo.3で回答した関数では、計算の反復回数に関わるデータ数が、D列に入力されている3行だけ(正確には、項目名である「都道府県指定」というデータも合わせた4行だけ)ですから、データ量が少ないため、計算は重くなりません。(都道府県名を数千種類も入力するなら別ですが) 実際、試した処、作業列を使用した方法の方が、1万回近くも計算を繰り返さねばらないために、ANo.3の方法よりも計算に要する時間が長くなりました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、D列の2行目以下に、合計を求める都道府県名を入力するものとします。 その場合、合計人数を求める関数は、次の様なものになります。 =SUMPRODUCT(SUMIF($A:$A,$D$1:INDEX($D:$D,MATCH("゛",$D:$D,-1)),$B:$B)*1) 北海道と東京都と大阪の合計を求める場合には、D2以下に、 D2セルに 北海道 D3セルに 東京都 D4セルに 大阪 という具合に、合計を求める都道府県名を入力して下さい。 その際、入力する都道府県数や入力する順序は問いません。 但し、 D2セルに 北海道 D3セルに 東京都 D4セルに 大阪 D5セルに 北海道 という具合に、指定した道府県名に重複が無い様にして下さい。(A列のデータは重複があっても構いせん) 又、A列のデータを例えば 東京都千代田区丸の内 という具合に、住所を入力としておき、合計人数を求める関数を =SUMPRODUCT(SUMIF($A:$A,$D$1:INDEX($D:$D,MATCH("゛",$D:$D,-1))&"*",$B:$B)*1) としておきますと、例えば、 D2セルに 東京都千代田区 D4セルに 東京都品川区 D5セルに 北海道 等と入力すれば、東京都千代田区と東京都品川区と北海道の合計人数を求める事が出来ます。
お礼
応用編もご教授頂きましてありがとうございました!
DSUM関数を使う場合、複数個を条件に指定するには 「項目名」を横にコピーし、行をたがえて条件を入れます。 都道府県|都道府県|都道府県 東京 | | |神奈川| | |福井 のように入れます。条件は元のデータをコピーして下さい。 行をずらす事によって「OR」になります。 東京、神奈川、福井の人数の合計が出ます。 2007なら、「SUMIFS」関数があり、複数条件を指定できますが、 この場合は違うようですね。 関数を使わなくても、簡単なのは「オートフィルタ」で 複数県を抽出後、人数の最後のセルで「Σ」で合計を出せば良いのでは。 この場合は、その都度抽出する必要がありますが。
お礼
参考になりました。ありがとうございました。
- kokorone
- ベストアンサー率38% (417/1093)
http://kokoro.kir.jp/excel/database-criteria.html DSUM関数ならば、複数条件のORが可能です。
お礼
参考になりました。ありがとうざいました。
お礼
できました。ありがとうございました。