- ベストアンサー
エクセルでのデータ抽出について
いつもお世話になっております。 以下の操作についてご教示をお願いいたします。 使用しているエクセルは2007です。 Sheet1 A列:2010年~の日付(昇順に記載し、発生日はランダム)が記載され、 B列以降は日付に対応したデータが記載された表が有ります。 Sheet2に同じ表の形式で2013年以降のデータを抽出したいのですが。 どのような方法がありますでしょうか? INDIRECT関数なんかを使って試行錯誤したのですが・・・わかりません。 どなたかご教示をお願いいたします。
- genta1019boston
- お礼率70% (114/161)
- Excel(エクセル)
- 回答数4
- ありがとう数6
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>どのような方法がありますでしょうか? 難しく考える必要はないでしょう。 「A列:2010年~の日付(昇順に記載し、発生日はランダム)が記載され」と言うことは2013年の最初の行を知ればそれ以降を全てShee2へコピーすれば良いことになります。 MATCH関数で2013/1/1未満の行番号が得られますので次の行から下が目的のデータです。 添付画像を参考に試されると良いでしょう。
その他の回答 (3)
- kagakusuki
- ベストアンサー率51% (2610/5101)
日付が必ず昇順で記載されているという事でしたら、作業列も使わずに、関数のみで抽出する事が出来ます。 今仮に、Sheet2の1行目は「日付」等の項目名を記述しておくために使用し、実際の抽出結果は2行目以下に表示させるものとします。 まず、Sheet2のA2セルに次の関数を入力して下さい。 =IF(COUNTIF(Sheet1!$A:$A,">=2013/1/1"),LARGE(Sheet1!$A:$A,COUNTIF(Sheet1!$A:$A,">=2013/1/1")),"") 次に、Sheet2のB2セルに次の関数を入力して下さい。 =IF(ROWS($A$2:$A2)>COUNTIF(Sheet1!$A:$A,">=2013/1/1"),"",IF(INDEX(Sheet1!$A:$C,MATCH($A$2,Sheet1!$A:$A)+ROWS($A$2:$A2)-1,COLUMNS($A:B))="","",INDEX(Sheet1!$A:$C,MATCH($A$2,Sheet1!$A:$A)+ROWS($A$2:$A2)-1,COLUMNS($A:B)))) 次に、Sheet2のB2セルをコピーして、Sheet2の表内における「Sheet2のA2セルを除いた全てのセル」に貼り付けて下さい。 次に、Sheet2の表内におけるSheet2のA列のセルの書式を[日付]として下さい。 以上です。
お礼
ありがとうございました
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! Sheet1のA列はシリアル値とします。 オートフィルタでも対応できると思いますが、敢えて関数でやる場合 作業用の列を使用するのが一番簡単だと思います。 データは2行目以降にあるとします。 Sheet1のC2セルに =IF(YEAR(A2)>2012,ROW(),"") という数式を入れフィルハンドルでダブルクリック、またはオートフィルでデータ以上に下へコピー! Sheet2のA2セルに =IFERROR(INDEX(Sheet1!A:A,SMALL(Sheet1!$C:$C,ROW(A1))),"") という数式を入れB2セルまでコピー! → そのまま下へコピー! (Sheet2のA列の表示形式は「日付」にしておきます) こんな感じではどうでしょうか?m(_ _)m
お礼
ありがとうございました
- aokii
- ベストアンサー率23% (5210/22062)
全自動でやるならマクロを使うことになりますので、簡単にやるには、 Sheet1のA1セルをクリックし、データタブでフィルタをクリックし、フィルタで2010と2011と2012年のデータのチェックを外し、Sheet1の全データを選んでコピーして、Sheet2に貼り付けてはいかがでしょう。
お礼
ありがとうございました
関連するQ&A
- データ抽出について
エクセル初心者です。 エクセル2003を使っています。 sheet1に元データとなる表があります。 ・データセル内は数値データです。 ・行方向へは200程度 ・列方向へは1500程あります。 A B C D E F 1日付 項目1 項目2 項目3 項目4 項目5 ・・・ 2 3 4 5 6 この元データからsheet2へ日付をキーにして行データを抽出したいのです。 抽出先のsheet2のA列に予め目的の日付データのみ1200程入っています。 最初Vlookupでやり始めたんですが無理と分かりました。 フィルタオプションで試みたのですが、「検索条件範囲」の式の書き方が 分からず困っております。 OKWaveの関連したQAを参考に試行錯誤を続けていましたが、進展がありません。 お詳しい方よりのご回答をお待ちしております。
- ベストアンサー
- オフィス系ソフト
- エクセル関数を使って、ランダム抽出をしたいです
エクセル関数を使って、ランダム抽出をしたいのですが どの関数を使用すればいいのかわからないのです。 現在、1つのシートにいろいろなデータが入っているのですが、 D列のデータを使い、そのデータをランダムに25件抽出したいのです。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルで、データのある行だけを抽出したい。
エクセルのSheet1にデータが入っており、セルが空白でない行のデータのみを、Sheet2に抽出したいと思っています。 Sheet2にあらかじめ関数を入れておく方法にしたいため、関数について教えてください。 タイムテーブルで予定を管理するような表で、A~Hまでにデータが入っています。 予定を入れる際にはE列には必ず入力をするため、E列が空白でない行のみを抽出したいです。 A|B|C|D|E|F|G|H 月|日|時間|… 11|22|10:00|… 11|22|10:30|… 時間枠は10:00~17:00の30分刻みで、1日15行使用するので、1年で5475行まで使用します。 1行目はタイトル行なので、データは2行目から入力しています。 フィルタオプションで抽出する方法や、それをマクロで登録しておく方法は分かったのですが、あとから予定を追加することがあるため、マクロを実行する度にデータが置き換わると困ってしまいます。 また、抽出したSheet2のI列以降には備考などを入力したいため、やはり後から列がずれると困るため、A~H列に関数を入れておく方法で実行したいと思います。 よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- Excelでの複数データ抽出方法
Excelで関数を使用して以下のようなデータから 複数のデータ抽出を行いたいのですが可能でしょうか? <sheet1> A列 B列 C列 D列 E列 123456 11 12 13 13 123457 12 13 14 13、14 123158 13 14 15 13,14 123159 14 15 16 14 123160 15 16 17 ※抽出するデータは「13・14」になり、抽出場所は別シートでもかまいません。 過去の質問など参照してみましたがうまく出来ませんでした。 複数の関数を組み合わせでもかまいませんので、お手数おかけしますが よい方法が有ればご教示お願いします。
- ベストアンサー
- その他MS Office製品
- Excelにおけるデーター抽出
Excelのシートに記載されている内容は次の通りです。 (1) セルA5~A60の間に1~56の昇順の番号 (2) セルB5~B60には氏名 (3) セルC5~C60には○、×、△の記号 このシートからC列が ○ の記号が付与されている者だけの氏名を別のシートのB7~B**の間に抽出するのですが、抽出したシートの行に空白ができないようにするには式をExcel関数で作成することは可能でしょうか? 若し、不可能でしたらマクロで行う場合のプログラムを教えて下さい。
- ベストアンサー
- その他MS Office製品
- EXCELで表を抽出する
・A列に日付、B列に件名を入力した表があります。 ・A列の日付は、ランダムに、繰り返し現れます。 この表から、たとえば7月だけの、A列に日付、B列に件名の表を抽出する場合、 手動でする場合は、最初の表を日付順にソートし、黙視で7月分をコピーし、別表に貼り付ける、というやり方でできますが、 数式や関数で自動的にやる方法はないでしょうか? マクロが必要になりますか?
- ベストアンサー
- オフィス系ソフト
- この条件を抽出できるエクセルの式を教えてください
A列(A2からA602)にグループ名、B列(B2からB602)に対応日が入っているデータがあります。ただし、未対応の場合には日づけは空欄です。 今、A列であるグループを抽出し、B列にまだ日付が入っていない(未対応)の件数を出したいのです。 COUNTIF(A2:A602,"抽出したいグループ名")とCOUNTBLANK(B2:B602)あたりの関数を使うのかな・・・と思って試行錯誤してみましたが、数式ができません。 アドバイスをお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル 抽出マクロについて
はじめまして。マクロ初心者です。 エクセルで抽出結果を別シートにコピーしたいのですが、 抽出条件が2列にわたっています。 A B C D 日付 タイトル 分類(あ) 分類(い) 11/22 テレビ 3 2 12/15 ラジオ 1 4 11/18 雑誌 2 5 …というような感じです。 例えば分類が「2」のものを抽出したい時に、 ●シート1のあるセルに「2」と入力してマクロを実行。 ↓ ●シート2に以下のように結果をコピーして表示。 A B 日付 タイトル 11/22 テレビ 11/18 雑誌 という具合にしたいのです。(C列、D列は表示しない) データはシート3に入力されていて、今後どんどん増えていく予定です。 エクセルは2007です。 本やホームページを参考に試行錯誤したのですが、うまくいきません…。 どなたかご回答よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- EXCEL:ゼロ以外のデータを詰めて抽出する方法
初めて投稿します。よろしくお願いいたします。 EXCEL2000を使用しています。 オートフィルタを使わずに 関数でデータを抽出する方法で悩んでいます。 下記<データ>が存在しています。 2行目がゼロ以外のものを、 別シート<抽出>に上から詰めて抽出したいのです。 <データ> A列 B列 C列 D列 E列 1行 1 2 3 4 5 ←日付 2行 5 3 0 2 0 ←数字 <抽出>別シート A列 B列 1行 1 5 2行 2 3 3行 4 2 ↑ ↑ 日付 ゼロ以外 関数については中級レベルだと思います。 いろいろ試したのですが、関数を組み合わせてもなかなかうまくいきません。 どなたかご教授いただけないものでしょうか? よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- データ抽出
VBA初心者です。 エクセルで2枚のシートを練習用で作成しました。 画像上段がシート1で元データです。 下段が転記先の表で、シート2です。 シート2は、今はデータが参考に貼りつけてありますが 普段はマクロで作業後は消去して、空白にしています。 今したい処理が 元データをINPUTBOX関数を使って抽出し、 NO,購入日付、分類、感想、備考のデータを下段画像シート2のように 転記したいのです。 抽出条件のキーになるのは、主に「購入日付」と「分類」です。 どこかのセルに、日付を範囲指定で入力すれば、条件に当てはまる データをシート2に表示させたいです。 四半期ごとのデータを検索したいためです。 INPUTBOX関数でなくても、どこかの特定のセルに範囲指定する日付を入力 して、抽出してもかまわないです。 あと、分類は割と「飲料水」を抽出して、印刷する頻度が多いのですが 今後の参考に、全部の分類を抽出できるスタイルが望ましいです。 現在は、一行一行日付と分類を目視で確認しながら シート2にコピペ作業しているので 時間がかかります。 エクセルの機能でフィルタ等をしてみたのですが、 関数やVBAで素早くしたいのですが、なかなかコードが思いつきません。 お願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございました