• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル データ抽出と合計の方法がありますか。)

エクセルデータ抽出と合計の方法について

このQ&Aのポイント
  • エクセルで特定の条件に合致するデータを抽出し、それに該当する別の列の合計を求める方法について教えてください。
  • 具体的には、B列に存在する特定の数字列を自動で抽出し、それに該当するA列の値の合計を求める方法を知りたいです。
  • 現在は手入力で抽出すべき数字列をD列に入力し、合計を求める式をE列に記述していますが、関数を使用して自動的に数字列を抽出する方法があれば教えてください。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

D1セルには次の式を入力します。 =MIN(B:B) D2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(MAX(D$1:D1)=MAX(B:B),"",SMALL(B:B,COUNTIF(B:B,"<="&D1)+1))

noname#203857
質問者

お礼

うまく表示できました!! ありがとうございます。

その他の回答 (4)

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

全体的にはSUMIFの問題です。 問題はB列に現れるデータで、重複せず、漏れの無い1対(セット)のデータをどう作るかということです。 この難しさに気づかず、集計だけの方法を質問している質問者が多いが(そういう人は目視で判断して手入力している(するつもりな)のだろう)、本当はこちらも関数では難しい。 ーー 私はデーターフィルターフィルタオプションの設定で 条件は指定せずに空白にして 抽出データを置くセル範囲を指定し 重複するレコードは無視する、のチェックを入れて OK で作ることを勧めている。 ーー 関数なら 10 111 1 20 222 2 30 111 40 111 50 333 3 C2セルは =IF(COUNTIF($B$2:B2,B2)=1,MAX($C$1:C1)+1,"") 初出データ行に連続番号を振っている。 例えばE2に =INDEX($B$2:$B$6,MATCH(ROW()-1,$C$2:$C$6,0)) を入れて下方向に式複写。 結果 111 222 333 #N/A ーー imogasi方式(Googleで照会) ーー #N/Aを出さない方法は その手前で式の複写をやめるか C列のMAX(この場合3)より行数が大に鳴れば空白を返すIF関数式をかぶせると良い。

noname#203857
質問者

お礼

データーフィルターフィルタオプションの設定でできるんですね! 今度使ってみようと思います。 ありがとうございました。

回答No.4

作業列案(行数が5千行を大きく超える場合) C1セル0 C2セル =ISNA(MATCH(B2,$B$1:B1,0))+C1 フィルハンドル ダブルクリック D2セル =IF(INDEX(C:C,COUNT(C:C))<ROW(A1),"", INDEX(B:B,MATCH(ROW(A1),C:C,0))) フィルハンドル ダブルクリック E2セル =IF(D2="","",SUMIF(B:B,D2,A:A)) フィルハンドル ダブルクリック 添付図参照 参考まで

noname#203857
質問者

お礼

図までいただいてありがとうございました。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

◆あまり質問者の方には人気がありませんが、このような場合「ピボットテーブル」がおすすめです 1)一番上の行に項目行を設けて、A1:B7の範囲を指定して、 2)リボンの「挿入」タブ→「テーブル」グループ→「ピボットテーブル」→「ピボットテーブル」 3)「コード」を「行ラベル」に、「数量」を「?値」にドラッグします ★これだけで出来上がりです ◆EXCEL2003参考URL 「Excel(エクセル)実用編:家計簿の作成(ピボットテーブルを使う)」 ↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituyou/kake-pib.htm ◆関数案も D2=B2 D3=IF(ROW(A1)>SUMPRODUCT(($B$2:$B$10<>"")/COUNTIF($B$2:$B$10,$B$2:$B$10&""))-1,"",INDEX($B$2:$B$10,MATCH(0,INDEX(0/ISERROR(MATCH($B$2:$B$10,$B$2:B2,0)),),0))) ★下にコピー

noname#203857
質問者

お礼

2通りありがとうございます。 ピボットは、ファイルがどんどん重くなっていくような・・・ということで避けて通りました。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

こんな感じでどうでしょう…? =SUMPRODUCT(($B$1:$B$100=D1)*($A$1:$A$100)) これをD1に入力し、下にコピー。 範囲の後ろの数字は適宜変更してください。

noname#203857
質問者

お礼

早々にご回答いただいてありがとうございます。

関連するQ&A