• ベストアンサー

【エクセル】特定の文字列(番号)の行だけ抽出したい

現在資料を作っていて、またもや困ったことがあったので教えてください。 特定の文字が含まれる行のデータを抽出するにはどうしたらいいのでしょうか。 具体的にいうと ____|A|B|C|D|E| [01]|F|1|0|3|5| [02]|G|0|2|5|7| [03]|H|0|3|4|8|    中略 [21]|F|0|0|9|6| [22]|G|6|4|5|1| [23]|H|3|3|2|2|    中略 [31]|F|2|2|4|6| [32]|G|5|3|7|9| [33]|H|8|2|6|4|    以下略 *[]の中身は行番号 一番上段のA B C D Eは列の軸 |はセルの区切りを示している のような表でGのBのところ(行番号が10n+2のところのA列)だけのデータを合計したいのです。 つまり上の表でいえば =A2+A22+A32+A42+A52…(=0+6+5+…)ということをしたいのですが 数が600行近くあるので手入力だとかなり面倒くさいのです。 SUM関数を使うのかなとも思いましたが、それでもセルの指定の面倒くささは変わらないし… 何か簡単にできるようにする方法がありましたらご教授お願いします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

SUMIFという条件付集計関数があります。上記の場合なら =SUMIF(A:A,"G",B:B) で計算できます。

amber_jade
質問者

お礼

やはり関数は便利です。回答いただいた関数ですんなり解決できました。 補足質問なのですがもし A2~A33の間でOKWaveという単語を含む行のD列を合計したい場合は =SUMIF(A2:A33,"OKWave",D:D) でよろしいのでしょうか。 またB列からE列までを足したいならば =SUMIF(A2:A33,"OKWave",B:E) でしょうか。 ヘルプを見たのですが、合計範囲という考え方がいまいちわからないので。 よろしくお願いします。

その他の回答 (3)

  • picklse
  • ベストアンサー率65% (26/40)
回答No.4

返事が遅くなってしまいました。 >「ShiftとCtrlを同時に押しながらEnterで式を確定」 >はどのような意味があるのでしょうか? この計算式は配列数式といいます。 例えば{=SUM(IF(A1:A20>10,B1:B20))}という計算式の場合、A1:A20の範囲で値が10より大きいセルに対応するB列の値を合計します。 C1に=IF(A1>10,B1,0)という式を入力し、C2からC20までコピーしておいて、=SUM(C1:C20)で合計を求めるのと同じ結果になります。 配列数式を使えば、このC列の式を見えないところで作って合計を出してくれるわけです。 普通の計算式とは計算の仕方が違うため(だと思います)、ShiftとCtrlを押しながらEnterを押して式の入力を行います。 参考URLもご覧ください。

参考URL:
http://t_shun.at.infoseek.co.jp/My_Page/Excel-REF/ref_page4-1.htm
amber_jade
質問者

お礼

配列変数というのですね。 NO3の回答で名前はわかっていましたが、どのような意味を持つのかは良くわからなかったので、回答と参考URLで理解を深めることができました。 回答ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

>A2~A33の間でOKWaveという単語を含む行のD列を合計したい場合は >=SUMIF(A2:A33,"OKWave",D:D) >でよろしいのでしょうか。 =SUMIF(A2:A33,"OKWave",D2:D33) ですね。条件範囲と合計範囲の列数と行数は合わせる必要があります。 >またB列からE列までを足したいならば >=SUMIF(A2:A33,"OKWave",B:E) この場合の方法は =SUMIF(A2:A33,"OKWave",B2:B33)+SUMIF(A2:A33,"OKWave",C2:C33)+.. と一列ずつの合計を足すか =SUM(IF(A2:A33,"OKWave",B2:E33)) と入力後にCtrl+Shift+Enterで配列数式化してください。

amber_jade
質問者

お礼

補足質問に対する回答ありがとうございます。 列を足すのは一列づつやってみようかと思います。 一列づつ出す必要もあるかもしれないので。 とてもわかりやすい回答でした。 ありがとうございました。

  • picklse
  • ベストアンサー率65% (26/40)
回答No.2

10n+2の行の合計なら、次の式を入力してShiftとCtrlを同時に押しながらEnterで式を確定します。 =SUM((MOD(ROW(A1:A600),10)=2)*B1:B600) A列が"G"である行の合計なら次のような式になります(入力方法は同じ)。 =SUM((A1:A600="G")*B1:B600) .

amber_jade
質問者

お礼

簡単な関数でも組み合わせれば複雑な作業ができるのですね。 補足質問ですが 「ShiftとCtrlを同時に押しながらEnterで式を確定」 はどのような意味があるのでしょうか? {}が式の両側につきましたが、何が違うのでしょう。 よろしくお願いします。

関連するQ&A