エクセルについて、あるデータから指定期間内のデータを別シートへ抽出する方法を教えてください。
例)
No. 日付 名前 数字 配達先
1 5/1 AAA 5 BBB
2 5/6 CCC 10 DDD
3 5/14 EEE 4 FFF
4 6/6 GGG 20 HHH
データは毎日更新されます。
ここであるセルに「2012/5/1」~「2012/5/31」と入力し、その期間内のデータを別シートへ引っ張りたいです。指定期間は人によってその都度様々です。
色々調べたのですが、オートフィルターでは行えそうになく、VBAを使用した方がよいと思ったのですが、初心者のため分かりません。どなたか教えていただけますと大変助かります
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
》 オートフィルターでは行えそうになく、VBAを使用した方がよいと思った…
“初心者”は先走って思い込まないことをお奨めします。
[オートフィルタ]で抽出したデータをコピーして、別シートに貼り付ける手もあります。
詳細な手順は省くけど、添付図は[フィルタオプションの設定]を利用した経過&結果を示しています。
[抽出先] “指定した範囲”
[リスト範囲] Sheet1!$A:$E
[検索条件範囲] $D$2:$D$3
[抽出範囲] $A$5:$E$5
お礼が遅くなり、申し訳ございません。
ご教示ありがとうございました。
確かに、一般的な機能を使いこなせていないのに、
マクロと先走らず勉強してみようと思います。
オートフィルターをうまく使いこなしてみます。
No.4
- 回答日時:
シート1にはお示しの表が有り、A1セルからE1セルには項目名が有り、2行目以降にそれぞれのデータが入力されているとします。
シート2はお求めの表でA1セルには2012/5/1のように検索の初めの日付が、B1セルには から の文字が、C1セルには2012/5/30のように検索の終わりの日付が入力されているとします。
そこでシート1に戻ってシート1のF2セルには次の式を入力して下方にドラッグコピーします。
=IF(B2="","",IF(AND(B2>=Sheet2!A$1,B2<=Sheet2!C$1),MAX(F$1:F1)+1,""))
シート1のF列のデータをもとにシート2の表を作ります。
シート2のA2セルからE2セルまでのはシート1の1行目の項目名をコピーして貼り付けます。
シート2のA3セルには次の式を入力してE3セルまで横のドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(ROW(A1)>MAX(Sheet1!$F:$F),"",INDEX(Sheet1!$A:$E,MATCH(ROW(A1),Sheet1!$F:$F,0),COLUMN(A1)))
最後にシート2のB列を選択して右クリックしセルの書式設定からセルの表示形式で日付を選択します。
お礼が遅くなり、申し訳ございません。
ご教示ありがとうございます。
関数を使うことが頭になかったので、
関数でもできることに驚きました。
ありがとうございました。
No.3
- 回答日時:
作業列を使用しない方法です。
今仮に、元データの表中で「No.」と入力されているセルがSheet1のA1セルであり、Sheet2のB1セルに指定期間の最初の日付を入力し、Sheet2のD1セルに指定期間の最終日の日付を入力すると、Sheet2のA列~E列の4行目以下に、抽出されたデータが表示されるものとします。
又、Sheet1の日付は、必ず、古い日付が上になり、新しい日付が下に来るように並べられているものとします。
又、Sheet2のC1セルには「~」と入力されていて、例えば、Sheet1のB1セルに「2012/5/1」という日付が入力されていて、Sheet2のD1セルが空欄となっている場合には、指定期間は「2012/5/1~」という事で、2012/5/1以降の全てのデータが抽出されるものとし、
又、例えば、Sheet2のB1セルが空欄で、Sheet2のD1セルに「2012/5/31」と入力されている場合には、指定期間は「~2012/5/31」という事で、2012/5/31以前の全てのデータが抽出されるものとします。
(指定期間を1日分のみとする場合には、同一の日付を両方のセルに入力して下さい)
まず、Sheet2のA4セルに次の関数を入力して下さい。
=IF(ROWS($4:4)>IF(AND(ISNUMBER(1/DAY($D$1)),COUNTIF(Sheet1!$B:$B,"<"&$D$1+1)),MATCH($D$1+"23:59:59",Sheet1!$B:$B),IF(COUNT(Sheet1!$B:$B),MATCH(9E+99,Sheet1!$B:$B),0))-IF(AND(ISNUMBER(1/DAY($B$1)),COUNTIF(Sheet1!$B:$B,"<"&$B$1)),MATCH($B$1-"0:0:1",Sheet1!$B:$B),ROW(Sheet1!$B$1)),"",INDEX(Sheet1!$A:$A,IF(AND(ISNUMBER(1/DAY($B$1)),COUNTIF(Sheet1!$B:$B,"<"&$B$1)),MATCH($B$1-"0:0:1",Sheet1!$B:$B),ROW(Sheet1!$B$1))+ROWS($4:4)))
次に、Sheet2のB4セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(VLOOKUP($A4,Sheet1!$A:$E,MATCH(B$3,Sheet1!$A$1:$E$1,0),FALSE)<>"")),VLOOKUP($A4,Sheet1!$A:$E,MATCH(B$3,Sheet1!$A$1:$E$1,0),FALSE),"")
次に、Sheet2のB4セルをコピーして、Sheet2のC4~E4の範囲に貼り付けて下さい。
次に、Sheet2のB4~E4の範囲をコピーして、同じ列の5行目以下に貼り付けて下さい。
以上です。
No.2
- 回答日時:
VBA を使わないとできないという処理は確かにありますが、Excel の一般機能でできることを VBA で行っても、そのほうが有利と言える条件が揃っている場合を除いて、あまりお勧めしません。
趣味としてはいいですが、実務的には簡単な処理がかえって手間がかかってしまうし、一般機能が使えていない人が VBA のコードをスラスラ書けるとも思えません。まずは Excel の基本的な機能を使いこなせるよう学びましょう。ご要望のことは、オートフィルタでも問題なくできると思いますよ。添付図は、質問文の表を「2012/5/2~2012/5/15」という期間で絞り込んだ状態のものです。
別シートに保存したければ、絞り込んだ状態で表をコピーし、別シートに貼り付けるだけのことです。
例えば、「5/1」というセルにカーソルを置いた状態で、数式バーを見てみましょう。「2012/5/1」などと表示されているかと思います。セルでは「5/1」と表示されていても実際は年月日のデータであり、書式で「5/1」と表示させているだけだからです。そのセルに設定されている書式の確認は、右クリックの「セルの書式設定」の「表示形式」タブでできます。
「2012/5/1」といった年月日のうち年などが正しくないようなら、正しい年に書き換えておきましょう。数式バーをクリックまたはセルをダブルクリックで、部分的にも編集できます。
こうして年月日が正しくなっていれば、オートフィルタで狙いどおりに絞り込めます。その具体的な方法は、参考 URL を参照してください。Excel2003 と 2007 の両方で紹介されています。
Excel2007 では、参考 URL のページの図にある「日付フィルタ」という箇所をクリックすると、「指定の範囲内」というのが選べると思います。月単位での絞込みの場合は、チェックボックスでもできますね。
参考URL:http://officetanaka.net/excel/function/tips/tips …
お礼が遅くなり、申し訳ありません。
ご丁寧にご教示頂きありがとうございます。
確かにマクロにこだわる理由はありませんね、、。
もっと一般機能について勉強してからにします!
No.1
- 回答日時:
こんばんは。
添付図:
シート1のA,B,C,D,E列に元データ。
手順:
シート2のC1とC2に「2012/5/1」~「2012/5/31」と入力することにして。
A2セルに
=IF(MEDIAN(Sheet1!B2,$C$1:$C$2)=Sheet1!B2,ROW(Sheet1!B2),"")
と記入、下向けに沢山コピー
E2セルに
=IF(ROW(E1)>COUNT($A:$A),"",INDEX(Sheet1!A:A,SMALL($A:$A,ROW(E1))))
と記入、右に下にコピー。
まずは練習として回答の通りにまっさらエクセルに作成し、その通りにできるようになってから、改めてあなたの本番を作成してください。
#毎日5回は寄せられるご相談なので、誰が作成してもどこかで見たような回答になりますね。
お礼が遅くなり、申し訳ありません。
教えてくださり、ありがとうございました!
色んな方法があるんですね。とても勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) 更新前と更新後の差分をVBAを使って抜き出したい 5 2023/06/01 14:35
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
期間内に該当する値(日付)を抽出したい
Excel(エクセル)
-
1年分のデータから特定の月分のデータを抽出→表示
Excel(エクセル)
-
excel 指定期間内での条件抽出
Excel(エクセル)
-
-
4
エクセルの表で条件(日付別)にあてはまる行を 別シートに順番に抽出されるような関数を教えてください
Excel(エクセル)
-
5
エクセル2016でfilter関数がないので、、抜き出す関数をおしえてください。
Excel(エクセル)
-
6
エクセル 指定した月のデータを自動的に反映させられる方法
Excel(エクセル)
-
7
Excelマクロ 期間を指定してデータを別シートにするには?
Excel(エクセル)
-
8
エクセルで特定の列にある日付データの中から、指定した日付範囲を抽出する方法を教えてください
Excel(エクセル)
-
9
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
10
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
11
VBA 別シートの同じ日付の欄に値を貼付け
Excel(エクセル)
-
12
【Excel関数】別シートに日付順でデータを抽出する方法
Visual Basic(VBA)
-
13
Excelにて、ユーザーフォームで、日付けの範囲を指定し、検索しデーターを抽出し 別シートへ転記した
Excel(エクセル)
-
14
VBAでセルに入っている日付をシート名にする
Excel(エクセル)
-
15
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
16
(VBAにて)日付でデータを抽出するやり方
Excel(エクセル)
-
17
Excelで違うシートから日付を引っ張ってきたい
Excel(エクセル)
-
18
エクセルで日付を別のシートに引用したい
Excel(エクセル)
-
19
月が変わったら自動でシートが複製される方法を教えてください。
Visual Basic(VBA)
-
20
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件付き書式に設定する関数を...
-
ieを使わずにサーバーとのやり...
-
Excelの警告について
-
エクセルVBA 同じ品名を色分けする
-
Excelの数式について教えてくだ...
-
【マクロ】文字列の一部を削除...
-
エクセルでVLOOKUPの入ったセル...
-
エクセルのデータ整理の方法
-
パソコン教室ってExcelとかどこ...
-
excelVBAについて。
-
excelVBAについて。
-
各種ファイルの比較をしたい
-
excelvbaでcsvファイルをセルに...
-
エクセル この場合、値の抽出で...
-
excelVBAについて。
-
セル内が空白設定なのに#N/Aと...
-
IEを使わずHTMLを取得する
-
エクセルのデータについて
-
excelVBAについて。
-
エクセルの不調について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
エクセルの数式バーのフォント...
-
【Excel】日付に連動してプルダ...
-
【再投稿】レイアウトが異なる...
-
Excelについて教えてください ...
-
同率順位の発生しないランキン...
-
エクセルマクロについて教えて...
-
【Excel VBA】 テキストファイ...
-
Excel 標準フォントについて教...
-
Excelの計算で差分を求める場合...
-
Excelの区切り文字について質問...
-
大容量があつかえるソフトを探...
-
エクセルの計算式について(COU...
-
エクセルについて
-
今までは、 「CSVの出力先を選...
-
Excel ショートカットで列、行...
-
8:40までの出勤は全て8:30に...
-
if関数。半角文字や全角文字で...
-
エクセルの関数
-
毎週追加して行くセルの数値を...
おすすめ情報