• ベストアンサー

Excel関数についての質問です。

A      B    C    D   E 10/31 123456 789456 東京 5,000 10/31 569884 123456 大阪 8,000 11/1  561854 654779 神奈川 6,000 11/1  545425 569846 千葉 5,000 11/1  268552 123465 埼玉 9,000 11/2  863341 128965 青森 7,500 このような表があったとします。また、データを抽出したい別のシートに、 =today() で今日の日付を表示しておきます そこで =today() に一致する日付のD列とE列のデータを抜き出したいのです。(例えば、今日が10/31だったとしたら、下記のように東京5,000、また次の行に大阪8,000となるように。) 10/31 東京 5,000 10/31 大阪 8,000 このようなことは、可能でしょうか? どうぞ教えてください。よろしくお願いいたします。

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

  • ベストアンサー
  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.1

こんにちは~ ・データシートが Sheet1 ・抽出シートが Sheet2 ・抽出シートの A1セルに =TODAY() ・抽出シートの A2セル以下に該当データを抽出 ■作業列を使う方法です。 作業列はどこでもかまいませんが、ここでは仮に Sheet1 の F列を作業列とします。 ★ Sheet1 の F1セルに( データが 1行目から始まっているとして ) =IF(A1="","",IF(A1=Sheet2!$A$1,ROW(),"")) と入れて、データ最終行までフィルコピー ( Sheet2!$A$1 は =TODAY() が入っているセルです ) 今後もデータが増えるのなら、予想される最大行までコピーしておいてください。 ★ Sheet2 の A2セルに =IF(COUNT(Sheet1!$F:$F)<ROW(A1),"",INDEX(Sheet1!D:D,SMALL(Sheet1!$F:$F,ROW(A1)))) と入れて、右の B2セルにフィルコピー そのまま該当データの予想最大数まで下にフィルコピー 該当データが最大 10件だと思えば、11行目までフィルコピーしてください。 ◆ 作業列が F列以外なら $F:$F( 2ヶ所 )をその列記号に変更してください。 ( 絶対参照にすること ) ◆ ROW(A1) の A1 は、数式を入力する先頭のセルがどのセルかに関係なく A1のままにしておいてください。(← 最初に数式を入れるセルだけです。あとは右に下にコピーするだけで OKです ) ◆ 作業列が目障りなら非表示にしてください。

m_m_m_m_m
質問者

お礼

ありがとうございました。 大変助かりました。

その他の回答 (2)

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

例データ Sheet1の A2:E8に A列  B列  C列   D列   E列  F列 2005/10/31 10月31日 123456 789456 東京 5,000 1 10月31日 569884 123456 大阪 8,000 2 11月1日 561854 654779 神奈川 6,000 11月1日 545425 569846 千葉 5,000 11月1日 268552 123465 埼玉 9,000 11月2日 863341 128965 青森 7,500 10月31日 123454 234345 大分 8,000 3 C1に=TODAY()で日付が入っています。 F2に=IF(A2=$C$1,MAX($F$1:F1)+1,"") と式を入れて、F8まで式を複写します。 結果は上記F列に、条件にあった行に1からの連番が振られます。 Sheet2に行って A2に=INDEX(Sheet1!$A$2:$E$8,MATCH(ROW()-1,Sheet1!$F$2:$F$8,0),COLUMN()) と入れてE列まで+ハンドルを引っ張る。 A2:E2を指定して+ハンドルをA4:E4まで引っ張る。 結果 2005/10/31 123456 789456 東京 5000 2005/10/31 569884 123456 大阪 8000 2005/10/31 123454 234345 大分 8000 BA列の書式は日付、B列、C列、E列は数値の書式にして置いてください。 B,C列が不要なら、非表示にするか、COLUMN()をやめて、最後の引数で列を指定して =INDEX(Sheet1!$A$2:$E$8,MATCH(ROW()-1,Sheet1!$F$2:$F$8,0),1) =INDEX(Sheet1!$A$2:$E$8,MATCH(ROW()-1,Sheet1!$F$2:$F$8,0),3) のようにして、式の複写は縦方向のみしてください。(imogasi方式) OKWAVEでimogasi方式で照会すればたくさん類似例回答があります。

m_m_m_m_m
質問者

お礼

ありがとうございました。 大変わかりやすかったです。

回答No.2

フィルタオプションを使う手があります。 まず項目名を表の上につけてください。 仮にABCを項目名としますね。 1行以上空けて下のセルに、 項目名をコピーします。 そして、抽出したいデータをその下のセルに入力してください。 A      B    C    D   E =Today() こんな感じです。 そして、データ→フィルタ→フィルタオプションで、 抽出先を指定した範囲にチェックします。 あとはリスト範囲に表をタイトルごと。 検索条件範囲は↑のようにタイトルごと。 抽出範囲は抽出したい行にしてください。 別シートが良ければ抽出後コピーすればOKです。

m_m_m_m_m
質問者

お礼

ありがとうございました。 早速試してみます。

関連するQ&A

  • EXCEL関数

       A      B        C     D    E 1 田中(東京) 合格   8/1      鈴木 2 山田(大阪) 不合格  8/1      田中  3 鈴木(京都) 合格   8/3      山田 4 山田(大阪) 合格   8/4      伊藤 たとえばA1からE4にこのような入力がされているとします。(D列はなにも入力されていません。) 山田さんが合格のときF列に日付を表示し、そうでなければ空白を表示するにはどうすればよろしいのでしょうか? この場合F4に「8/4」と入るはずなのですが、 =IF(A4=E3 & "*",IF(B4="合格",C4,""),"") という式では空白になってしまうのです。 どうすればよろしいでしょうか。式には"山田"と入力せず、E3と示したいです。 分かる方教えてください。 EXCEL2000を使っています。

  • EXCEL関数についての質問です。

    EXCEL(2003)についての質問です。 関数にて、もし上行(※(1))のセルが空白の場合は空白、 そうでない場合は、2列隣(別シート)(※(2))のセルを返す。 ※(1)セル結合にて行を結合しています。 ※(2)同じ式(関数)ではじめのセル(結合されている)は、 A1次のセルはC1、E1、G1等1列飛ばしで参照。 としたいのですが、可能でしょうか? ちなみに添付画像のように結合行は可変します。 教えていただけると大変助かります。 例)    A            A    B    C    D    E    F    G 1 青森          青森       大阪       熊本 2 大阪 3 熊本   シート1                       シート2 宜しくお願い致します。

  • エクセルの関数

    A列に都道府県名、B列に人数が記入されているデータがあります。 尚、A列の都道府県名は重複があります。 別セルに都道府県ごとの総人数を関数にて求めたいのですが、どのような式を使えば良いでしょうか? 例) 千葉  1 千葉  5 千葉  1 東京  0 東京  1 埼玉  4 埼玉  9 埼玉  2 埼玉  0 埼玉  6 埼玉  4 ↓ 千葉7 東京1 埼玉25

  • excel関数2

    以前の質問内容追記 Kagakusukiさんに教えていただき 複数条件で抽出し最小値と最大値、平均を出すことが出来ました。 (添付の画像ファイルをご覧下さい) 追加で教えていただきたく、質問をさせていただきます。 sheet1のd列に日付、e列に担当者が入っている場合 Sheet2の最小値と最大値に対して日付、担当者も入れる事は出来ますか? マクロは組めないので関数で教えて下さい。 よろしくお願いします。

  • Excelで、文字列が一致した時は指定した文字に変換し、不一致の時は空白(Null)を返す関数、ありませんか?

    Excelのデータ作成で困っています(ToT)例えば、「文字列“千葉”に一致すれば“千葉市内”に変更する」という関数を使用し、 東京→(Null) 埼玉→(Null) 横浜→(Null) 千葉→千葉市内 千葉→千葉市内 埼玉→(Null) というように変換したいのですが、うまくいきません。 substitute関数を使ってみたのですが、一致しない時はNull(空白)ではなく、以下のように、元の文字列をそのまま返してしまうのです。 東京→東京 埼玉→埼玉 横浜→横浜 千葉→千葉市内 千葉→千葉市内 埼玉→埼玉 一致しない時はNull(空白)を返し、一致するときは指定した文字列に変更する関数やマクロなど、ご存じの方がいらっしゃいましたら、教えていただきたいです。 よろしくお願いします<m(__)m>

  • ユーザーフォームを使用したデータの複数抽出

    B列にFROM、C列にTO、D列に出発、E列に到着のデータが複数行あって、 期間 FROM 2005/04/01 TO 2006/03/31 出発 □東京 □神奈川 □埼玉 □千葉 □群馬     □茨城 □栃木  □山梨 □長野 到着 □大阪 □名古屋 □宮城 □北海道 上のようなユーザーフォーム(期間はテキストボックス、出発・到着はチェックボックス)を作成して、データの抽出をしたいのですが、チェックボックスは複数選択します。 例)FROM以上TO以下で、東京・神奈川・山梨で出発して大阪と名古屋に到着したものを抽出、というような複数のパターンがあるので、マクロで別セルにチェックしたものを抜き出して、フィルタオプションの設定で抽出したのですが、条件が複雑なので、フィルタオプションの設定以外はにできないでしょうか?お願いします。

  • VLOOKUP関数(範囲を広げる場合)

    こんにちは。 VLOOKUP関数の事で教えてください! 最近何となくVLOOKUP関数の内容がわかってきた ところなのですが、以下の場合は、どのように したら良いものでしょうか・・ __|___A__|____B____|__C__| 1|地域1|地域2 |コード | 2|東京 |東京都 | 1 | 3|大阪 |大阪府 | 2 | 4|千葉 |千葉県 | 3 | 5|埼玉 |埼玉県 | 4 | 6|茨城 |茨城県 | 5 | (A1:C6を「範囲」として) たとえば[D2]に「大阪」または「大阪府」 どちらかの文字が入力された場合、 [E1]には[2](コード)と表示させる数式は はどのようにしたら良いのでしょうか。 「A列かつB列」という複数条件の数式は、 調べてみて分かったのですが「A列またはB列」 という条件の数式を教えて下さい! よろしくお願いします。

  • エクセルの関数やマクロだけで、ランダムな並べ替えをするには?

    エクセルの機能である[データ]-[並べ替え]操作を使わずに、 ランダムなデータの並べ替えをするには、どうしたらいいでしょうか? 例: E列の乱数結果より、D列の内容をB列に並べ替え表示    A  B  C  D  E  F 1  順位 名称 C  場所 乱数   2   1       青森  5   3   2       埼玉  1   4   3       長野  3   5   4       福井  2   6   5       大分  4   7                   ↓    A  B  C  D  E  F 1  順位 名称 C  場所 乱数   2   1 埼玉    青森  5   3   2 福井    埼玉  1   4   3 長野    長野  3   5   4 大分    福井  2   6   5 青森    大分  4   7                   B列への関数入力または簡単なマクロを教えていただけると助かります。 よろしくお願いします。

  • Excel関数

    Excelで適切な関数を探しています。 在庫の管理で複数ある在庫の指定した商品の過不足がわかるような在庫表を作成しようとしてます。 会社の基幹システムからExcelに落とした在庫表が下記のようにあります。 A列    B列     C列     品番    倉庫名  保有在庫数 111111   東京     10 111111   大阪     20 222222   東京     50 333333   大阪     10 333333   札幌     10 444444   札幌     30 続く・・・ 他に各倉庫各品番の必要在庫の別シートのマスターがあります。 A列    B列   C列 品番   在庫名  必要在庫数 1111111  東京    50 1111111  大阪    10 2222222  東京    100 2222222  大阪    20 最初の在庫表にD列を設け、そこに上記のマスターの必要在庫数を表示させて下記のようにしたいのですが・・・ A列    B列     C列    D列    E 品番    倉庫名  保有在庫数  必要在庫数 過不足数 111111   東京     10      50    -40 111111   大阪     20      10    10 222222   東京     50      100   -50 ・・・・・ がIFやVLOOKUPの関数で組み合わせで適切なものができませんでした。 他の関数で適切なものはありますでしょうか。 

  • EXCEL 関数 表示について

    列データで同じデータが続く場合は先頭のデータを表示 (一番列番号が若いデータ) 5列以上同じデータがある場合は5列目のデータも表示。 要するに以下のようなデータの表示をさせたいのですが どのような関数になるのでしょうか? 別セルに連番を振れば=IF(BQ2=1,BP2,"")のような関数で 先頭と5列目の表示はできますが・・・。 埼玉 埼玉 埼玉 埼玉 埼玉→ 埼玉 埼玉 札幌 札幌 札幌 東京 東京 大阪 大阪 大阪

専門家に質問してみよう