エクセルでデータ抽出し、別シートを作成するための関数

このQ&Aのポイント
  • エクセルの2003・2007を使用して、指定の条件に一致するデータを抽出し、別のシートに作成するための関数について教えてください。
  • 具体的に、B列が本日から10日間以内かつC列が空白のデータのA・B・D行を別のシートに作成する関数を教えてください。
  • また、作成した別のシートには、抽出したデータの名前、日付1、備考が表示されるようにしてください。
回答を見る
  • ベストアンサー

エクセル(2003・2007)でデータ抽出し、別シートを作成するための

エクセル(2003・2007)でデータ抽出し、別シートを作成するための関数を教えて下さい ●シート名:サンプルA                ●シート名:サンプルB   A  B    C   D  E・・        A  B     C   名前 日付1  日付2  備考      名前 日付1   備考 1 山田 2010/10/15 2010/10/10 ああ    1 鈴木 2010/10/18 うう 2 佐藤             いい       2 太田 2010/10/21 かか  3 鈴木 2010/10/18 うう     → 4 井上 2010/11/20 ええ 5 石田 2010/8/7 2010/10/7 おお 6 太田 2010/10/21 かか 具体的に上記のデータから【B列が本日から10日間以内かつC列がスペース】のデータのA・B・D行を別シートに作成する関数を教えて下さい よろしくお願いします ※なぜか文字がずれてしまってて、すいません・・・

noname#157767
noname#157767

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

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

回答No1です。 サンプルBでB列の日付が数値で表示されるのは日付はシリアル値で評価されその値が表示されるのです。B列を選択して右クリックし、「セルの書式設定」から「表示形式」のタブで「日付」の中から選択すればよいでしょう。 ところで実はもう3項目を増やしたいとのこと、初めからそのようにご質問されるようにしましょう。 3項目増やした状態での式は次のように変わります。 サンプルAのシートではH2セルに次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",IF(AND(B2>=TODAY(),B2<TODAY()+10,C2=""),MAX(H$1:H1)+1,"")) サンプルBシートではA2セルに次の式を入力し右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(ROW(A1)>MAX(サンプルA!$H:$H),COLUMN(A1)>6),"",IF(COLUMN(A1)<=2,INDEX(サンプルA!$A:$B,MATCH(ROW(A1),サンプルA!$H:$H,0),COLUMN(A1)),IF(COLUMN(A1)>=3,INDEX(サンプルA!$A:$G,MATCH(ROW(A1),サンプルA!$H:$H,0),COLUMN(A1)+1))))

noname#157767
質問者

お礼

2度も回答頂き、ありがとうございました おかげさまで無事、作業完了しました!

その他の回答 (1)

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

サンプルAのシートではA1セルに氏名、A2セルから下方にデータが、B,C、D列についても1行目に項目名が2行目以降にそれぞれのデータがあるとします。 作業列をE列に作ってE2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",IF(AND(B2>=TODAY(),B2<TODAY()+10,C2=""),MAX(E$1:E1)+1,"")) サンプルBシートではA,B,C列の1行目に項目名があるとしてA2セルには次の式を入力してC2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)>MAX(サンプルA!$E:$E),"",IF(COLUMN(A1)<=2,INDEX(サンプルA!$A:$B,MATCH(ROW(A1),サンプルA!$E:$E,0),COLUMN(A1)),IF(COLUMN(A1)=3,INDEX(サンプルA!$D:$D,MATCH(ROW(A1),サンプルA!$E:$E,0)),"")))

noname#157767
質問者

補足

ご回答有難うございます 氏名と備考はコピペでうまく出来ました 有難うございます ただ、サンプルBの日付表示がうまく表示されないのです (40466等の数字が表示されます) また、サンプルAの後ろのほうの列からあと3項目程度サンプルBに表示したいのですが、 関数も結構変わっちゃいますか? 素人ですいません

関連するQ&A

  • excelでデータを別シートに引っ張ってきたい

    excelで値を検索し、返す時、返す値の横にあるデータを違うシートのセルの下に一緒に引っ張ってきたいときの関数(方法)を教えてください。 素人なので分かりにくいと思いますが、お知恵をお借りしたいと思います。 あるデータのシートの検索値を別シートに持ってきたいのですが、シート1をシート2のようにしたいのです。 /は空白 例)シート1 /A B C D E 1(1) □ ○ ▽ ◎ 2 (2) ▼ ■ ◇ ◎ シート2 / A B C D 1 (1) □ 2 /○ ▽ ◎ 3 (2) ▼ 4 /■ ◇ ◎ 分かりにくいかもしれませんが、 シート1の(1)(A1)を検索すると、シート2(B1)に□(これはVLOOKで引っ張ってこれるのはわかります。) 次にシート1の(C1)○をシート2の(B2)へ持ってきたいのです。シート1(D1)(E1)はシート2の(C2)(D2)へ。 しかもシート1のC列は空白セルもあり、シート1のC列が空白の場合、下にずれることなくシート1の(D1)(E1)はシート2の(C1)(D1)へ。下記<図a>のようになるようにしたいのです。 そして、シート2のA列に検索値として入力する(1)や(2)の値は連番ではなく、(2)の次に(5)に飛んだりします。(2)の行のC列にデータがあっても、(5)のC列にデータはないこともあります。<図b> <図a> /A B C D 1 (1) □ ▽ ◎ 2 (2) ▼ ◇ ◎ <図b> / A B C D 1 (1) □ 2 /○ ▽ ◎ 3 (2) ▼ 4 /■ ◇ ◎ 5 (5) □ ▽ ◎ 6 (7) ▼ ◇ ◎ vlookとかCLUMN関数とか考えてはみたのですが、どうもうまくいきません。 毎回作成するデータなのですが、毎回コピペで作成しています。 とても面倒なので(1)を検索したらデータが一瞬で検索できるようにしたいと試みてはみたものの、私の知識では不可能でした。 関数では無理なのでしょうか。。。 関数はあまり詳しくないので分かりやすい方法があれば、教えていただければ助かります。 関数に詳しい方、よろしくおねがいいいたします。 関数にはこだわっていません。違う方法があればそれも含めておねがいいたします。

  • エクセルで月ごとの複数データを別シートに抽出したい

    エクセル2007で、sheet1に元となるデータがあり、その中からsheet2に月毎に列でまとめて、しかも日付順に並ばせたいと思っています。 まず、下記がsheet1のデータ例です。 -------------------------------------------- [sheet1]    A列     B列          C列      D列 1  名前     レンタル希望    血液型    担当 2  山田太郎  2013/9/12     A型      営業  3  鈴木花子  2013/8/1      B型      開発 4  山下健    2013/9/10      O型     広報 -------------------------------------------- 上記のような、随時追加・修正されていくデータです。 それを、下記のようにsheet2にB列(レンタル希望日)の月で検索し、B列の日付順でA列(名前)とB列(レンタル希望日)を随時表示させていきたいです。 -------------------------------------------- [sheet2]    A列      B列         C列      D列 1  8月レンタル            9月レンタル 2  名前      レンタル希望   名前     レンタル希望 3  鈴木花子   2013/8/1     山下健    2013/9/10 4                     山田太郎   2013/9/12 -------------------------------------------- このような形でsheet1を変えたものをレンタル希望日を基点にとして 随時並ばれていて、この月はこのぐらいの希望がこの人からあるのか(あったのか) というのがわかるような管理表を作りたいと思っています。 フィルタオプション等をいろいろ試してみましたがうまくいかず、 また、なかなかマッチするQAが見つからず困っています。。。 どうかよろしくお願いします!

  • エクセルのデータ検索・抽出 について

    不動産の物件リストを作っているのですが sheet1に  A列     B列     C列     D列 取引先A  物件所在1   面積1    備考1 取引先A  物件所在2   面積2    備考2 取引先B  物件所在3   面積3    備考3 取引先A  物件所在4   面積4    備考4 とデータが入っており 取引先Aに該当するデータをsheet2に抽出したいのですが vlookup関数だと1番目のデータしか抽出できず困っています。 ↓のようになってしまいます。  A列     B列     C列     D列 取引先A  物件所在1   面積1    備考1 取引先A  物件所在1   面積1    備考1 取引先A  物件所在1   面積1    備考1 他の関数等で対応できそうでしょうか? ご教示お願いいたします。

  • エクセルのシート間のデータ抽出について

    (1)シートは「集約」用のシートと、「各月」のシートがあります。「集約」シートは、A列には日付、B列には番号、C列には備考欄という表があります。各月のシートも同様ですが、番号の項目だけどの月も「1、2、3,4~」と通し番号でつけてあります。通し番号の数は月によって異なります。多くなる月もあれば、少なくなってしまう月、何もない月もあります。(2)「集約」の日付なり番号なりを入力すると、各月のデータが一つの表に反映されるようにしたいです。何かよい手立てはないものでしょうか?よろしくお願いします。

  • Excelで2つの条件が一致したデータの抽出

    Excelで2つの条件が一致したデータの抽出 こんにちわ。 タイトルの通り、Excelで2つの条件が一致したデータの抽出作業を行っています。 Sheet1にデータがあり、以下のような構成なっています。 A列    B列    C列 日付   社員名   売上金 6月1日 鈴木     3万円 6月1日 今井     2万円 6月2日 川口     10万円 6月3日 鈴木     4万円 6月3日 野口     1万円 6月4日 鈴木     3万円 6月7日 佐藤     6万円 6月7日 今井     2万円 6月7日 黒木     7万円 6月9日 野口     3万円 A列の日付は不連続かつ同一日付のものもあります。 Sheet2に以下のフォーマットを作成してあります。 1行目:B1セルから連続する日付(6/1~6/30まで) A列:A2から社員名(社員名は各セルに固定) 6月1日 6月2日 6月3日 6月4日 6月5日 ・・・ 鈴木 佐藤 今井 川口 野口 黒木 Sheet2のセルに、Sheet1の表の日付と社員名が一致した売上金のデータを反映させたいのです。 そこで例えばSheet2のB2セルには以下の関数を入れました。 B2=IF(ISNA(MATCH($A$2:$A$9&$B$1:$N$1,INDEX(Sheet1!$C$2:$C$24&Sheet1!$A$2:$A$24,))),"",INDEX(Sheet1!$D$2:$D$24,MATCH($A$2:$A$9&$B$1:$N$1,INDEX(Sheet1!$C$2:$C$24&Sheet1!$A$2:$A$24,),0))) この関数を入れると、該当するところには売上金のデータが反映されるものの、それ以外のセルには全て#N/Aが表示されてしまいます。 この#N/Aを表示させないようにするには、関数をどのようにすればいいのでしょうか? エクセル初心者なので、分かりやすくご教授願えたら…と思います。 よろしくお願いいたします。 使用OS:XP  使用ソフト:Office2000 Pro.

  • EXCELの関数で別のシートからデータを取り出す方法について

    こんばんは。 excelの関数で次のようなことができますか? sheet1 A     B   C 123 125 122 sheet2 A    B    C     D 122            りんご 123           みかん 125            バナナ 上記のようなデータがsheet1とsheet2にあります。 sheet1のC列にA列のセルの番号と対応した商品を sheet2のA列とD列に対応データから引用できますか? (となりに並んでいないデータです。) 関数的にはvlookup,index,matchとかを使うとよさそうですが うまくいきません。 解決方法を教えてください。 よろしくお願いします。

  • エクセルで、条件にあう複数の行を別のシートに抽出する

    《どなたか、お教え下さい》   エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。 「sheet1」の下記の基本データを「sheet2」に「得意先」ごと「日付」の早い順にまとめたいのでが。関数を使ってできないものか、どなたかお教え下さい。「マクロ」や「Access」は使用したことがないので、関数を使ってやりたいと思いますが、できるものでしょうか。よろしくお願いします。 sheet1 番号 得意先 日付 商品名 商品詳細 金額 備考 1   A 2   B 2   B 4   D 5   E 6   F 2   B 3   C 5   E   A    B  番号  得意先   1   A      2   B   得意先名は、番号を入力することで表示されるように   3   C   関数「VLOOKUP」を使って表示させるようにしていま   4   D   す。    5   E   6   F  

  • 一部のデータを別シートに自動的に抽出したい

    仕事で顧客データの入力をしています。そのデータの中で、ある条件に満たすデータの一部を別シートに自動的に抽出できるようにしたいです。必死に調べたのですが、できません。どうか教えてください。 ※基本データ(これからも毎日ここに入力します)   A     B    C     D     E    F     G   1  NO 担当者 お客様  日付   年齢  住所  土地有無 2 1  林   鈴木  3/1  55  ☆    有 3 2  国分  田中  3/1  37  ☆    無 4 3  国分  近藤  3/2  41  ☆    無 土地有無欄(G列)の「無」に該当する担当者列(B列)、お客様列(C列)のみを別シートに自動的に抽出する様にしたいです。 ※抽出先のシート    A      B       C      D     E 1 担当者 お客様名  予算  希望建築地 家族構成 2 国分   田中  3 国分   近藤    C列とD列とE列は新たに追加入力していく項目です。

  • EXCELで別ファイルからデータを抽出するには?

    EXCELについて条件に一致する列の内容を抽出する方法を教えてください。 シート1の行に日付があり、列に品名と日ごとの数を入力してあるシートがあります。 このシートの内容を別のシートに日付を入力すると、その日の内容が表示されるようにしたいのですが、うまくいきません。 [シート1]     1    2    3   4 (←日付) A品  10  20  30   40… B品  30   10  40  20… C品  15  16   17  18… D品  20  21   22  23… [シート2]     *(←日付を入力) A品 (   ) B品 (   ) C品 (   ) D品 (  ) シート1とシート2はそれぞれ別ファイルで同時に開いている状況です。 シート2の*部分に日付を入れると該当する日付の各品名の数量が( )の部分に表示されるようにするにはどうしたらよいですか?

  • エクセル 別シートから一覧を抽出したい

    部品一覧表を作成しているのですが、2シートあり 1入力シート・2部品コードシートとあります。 部品コードシートにはB列に部品番号・C列部品名・D列部品番号・E列部品名と2行ずつ使い番号・品名がB~Wまで47行分入力されています。 B1:C47、D1:E47…と2列47行にはそれぞれ【A】、【B】、…とセルの名前の定義をつけました。現在【H】までありますが、今後増える可能性があります。 入力シートに、セルの名前を指定したときに部品コードのシートから 一覧を抽出したいのですが、どの関数を使えばよいのかわかりません。 入力シート                 |部品コードシート G   H                  | A Bコード C部品名  Dコード E部品名 4式入力用にあけています。     |1 1800  ユニットA   1501 電源A 5コード 部品名             |2 1801  ユニットB   1502 電源B 6                       |3 G4に関数を入れてG6~G52まで部品コードのシートA1~A47を一気に表示 させたいのです。部品コードシートの行数が変わることはありません。 マクロを使わないと、関数では難しいでしょうか?

専門家に質問してみよう