• ベストアンサー

EXCEL 特定の文字列の下のセルを集めたい

いつもこちらではお世話になっております。 色々と調べましたが、どうしても分からなく・・・(涙)質問させていただきます。 分かる方いらっしゃいましたらお教え下さい。 シート内である特定の文字列の、下のセルのみ抜き出して表にしたいのですが、うまい検出方法が見つかりません。 例を画像にしました。 一度に作成できなくても一項目毎でもいいです。 件数が1000件ほどあるので手で作業するのは大変で困っております。 よい方法がありますでしょうか。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

C2セルに「'=A3」, C3セルに「'=A11」と入力して、この2つのセルを下方向に必要数オートフィルし、C列を選択して「データ」「区切り位置」で「完了」します。 D列とE列にも同様の操作を行います。

rin1987
質問者

お礼

回答いただきありがとうございます。m(__)m すみません、1件1件の間の行数はバラバラなのでずれてしまう・・・と思いましたが、そこまでバラバラではないので手作業で統一して、言われたとおりに操作を行い・・・うまく出来ました! 助かりました~!全部手作業になるかと思っていたので助かりました。 ここはすぐに回答をいただけるので本当に嬉しいです。 ありがとうございました。

その他の回答 (5)

noname#204879
noname#204879
回答No.6

A列の空白行が、2行であったり、1行であったりとテンデンバラバラですが、本当にそうなンですか? ついでながら、A列の空白間のデータは必ず6行ずつと統一されていますか?

rin1987
質問者

お礼

補足要求してくださりありがとうございますm(__)m そうなんです・・・みんなバラバラなんです。 さらに無回答の場合は行が詰まるので、1件6行の所が4行になったりと本当にバラバラなんです。 でも今回は手直しして統一してなんとか集計できました。 ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.3・4です。 ほんとぉ~!にごめんなさい。 作業列の数式はB2セルではなく B3セルに入力お願いします。 そうしないと1行ずつずれてしまいました。 検証せずに何度も投稿してごめんなさいね。m(__)m

rin1987
質問者

お礼

何度も回答いただきありがとうございますm(__)m すごい!出来ました!出来ました~!! これは・・・どういう計算式になっているのでしょうか。 文字で判別してるのでしょうか。えーとえーと・・・。 私も勉強しなきゃダメですね。精進します。 本当にありがとうございました。感謝です。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です! たびたびごめんなさい。 前回の作業列の数式が間違っていました。 B2セルの数式を =IF(A2=$A$2,1,IF(A2=$A$4,2,IF(A2=$A$6,3,""))) に訂正してください。 どうも何度も失礼しました。m(__)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 色々方法はあるかと思いますが・・・ 一例です。 B列を作業用の列として使わせてもらいます。 B2セルに =IF(A1=$A$2,1,IF(A1=$A$4,IF(A2="男性",2,IF(A2="女性",3)),IF(A1=$A$6,A2,""))) という数式を入れ、オートフィルでずぃ~~!っと下へコピーします。 (とりあえず、C2セルに入れる数式が1000行まで対応できるようにしていますので、 そのくらいコピーしても構いません) そしてC2セルに入れる数式ですが、配列数式になってしまいますので この画面からそのままコピーしただけではエラーになると思います。 C2セルに貼り付け後、F2キーを押すか、数式バー内で一度クリックします。 編集可能になりますので Shift+Ctrl+Enterキーで確定すると数式の前後に{ }マークが入り配列数式になります。 C2セルの数式は =IF(COUNTIF($B$1:$B$1000,COLUMN(A1))<ROW(A1),"",INDEX($A$1:$A$1000,SMALL(IF($B$1:$B$1000=COLUMN(A1),ROW($1:$1000)),ROW(A1)))) となります。 これを列方向と行方向にコピーすると 希望に近い形にならないでしょうか? 以上、長々と書きましたが参考になれば幸いです。m(__)m

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

A列のデータセットの数が一定しないような場合(規則的にデータが配列されていない場合)に関数表示させるなら以下のような配列数式を使うことになります。 C2セルに以下の式を入力してCtrl+Shift+Enterで確定して、右方向に3つ下方向にデータ数分だけオートフィルします。 =INDEX($A:$A,SMALL(IF($A$1:$A$10000=C$1,ROW($A$2:$A$100001),""),ROW(A1)))

rin1987
質問者

お礼

一番目の方法をしている間に、もう一つの回答もいただきありがとうございます。 今後もこういう作業があるので、簡単になるならと試してみましたが、どうしてもエラー「入力した数式は正しくありません」と出てしまいます。 私のやり方が悪いのでしょうか・・・。せっかくお答えいただいたのにうまく使えなくてすみません。

関連するQ&A