• ベストアンサー

データの抽出について

エクセルの関数について質問します。 あるデータから特定の文字を含む行などを抽出する場合、通常オートフィルター機能を使いますが、これを関数で抽出することはできますでしょうか? 日付が入っているデータ(200行くらい)からある特定の日付で、さらに特定の文字を含まれているものを抽出し利用したいと考えています。 AND関数を使った場合、特定のセルで指定(たとえばB2='2007/3/1'、C2='ある特定の文字')はできるのですが、B2:B100の中から='2007/3/1'でなおかつ、C2:C100='ある特定の文字'といった絞り込みができずに苦戦しています。 よろしくお願いいたします。

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

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

◆関数による方法です ★特定の文字を「ああ」とします =IF(ROW(A1)>SUMPRODUCT(($B$2:$B$100="2007/3/1"*1)*($C$2:$C$100="ああ")),"",INDEX(B$1:B$100,SMALL(INDEX(SUBSTITUTE(($B$2:$B$100="2007/3/1"*1)*($C$2:$C$100="ああ"),0,10^5)*ROW($B$2:$B$100),),ROW(A1)))) ★この式を、右と下にコピー

saab_2005
質問者

お礼

maron―5様 早速のご返答ありがとうございます! EXCEL初心者には、ハードルが高いのか初めて見る関数ばかりでした(汗) じつは、予約管理表のようなものを作成したいと考えておりまして、 シート1に100件くらいの予約データ(日付や特定の文字)がはいっており、そこからある特定の日付と文字を抽出し、別のシート2に表示させたいと考えています。     3/1 3/2 3/3 みかん  1→3/1でみかんが含まれるデータがある場合に1を表示 りんご     1→3/2でりんごが含まれるデータがある場合1を表示 ばなな  →該当するのが無い場合は何も表示されない といったようにシート2の各セルにシート1の内容を抽出して表示できるように関数を入力したいと考えています。 説明不足で申し訳ございません。 もしよろしければ、具体的に教えていただけませんでしょうか? よろしくお願いいたします。

その他の回答 (1)

回答No.2

少々反則的ですが、CONCATENATE関数とオートフィルタの合わせ技です。 A2=2007/3/1 B2=あいう 抽出したい文字列「あい」 とすると 1)C2に以下の関数を入力 =CONCATENATE(YEAR(A2),"/",MONTH(A2),"/",DAY(A2),B2)  ※結果、C2には「2007/3/1あいう」と表示されます。 3)オートフィルタオプションで、【[2007/3/1]で始まる】 and 【[あい]を含む】 を抽出 いかがでしょうか?

saab_2005
質問者

お礼

ご回答、ありがとうございます。 このような方法もあるんですね。 CONCATENATEという関数は初めてみました。 EXCELは奥が深いですね。 ありがとうございました。