- ベストアンサー
エクセルで複数の条件を抽出し自動的に別シートに反映する方法を教えてください。
こんばんは。教えてください。 元データ(sheet1)を更新するたび 2つの条件にあったデータを 別シートに自動的に抽出したいので 適した関数がありましたら教えてください。 ◇シート1◇ ※元データ A B C D F 1 氏名 役職 部署 年齢 移動時期 2 山田 社員 開発 45 未調整 3 田中 社員 人事 42 4/1~ 4 鈴木 派遣 企画 30 5 高橋 役員 人事 50 未調整 6 坂野 社員 企画 33 未調整 7 井上 派遣 企画 29 未調整 ◇シート2◇ ※部署が人事で移動時期が未調整の人のみ抽出 A B C D F 1 氏名 役職 部署 年齢 移動時期 2 高橋 役員 人事 50 未調整 補足 ・元データ(シート1)はこれからもデータを追加するので その度、シート2、シート3もそれぞれ自動で反映されるようにした いです。 ・マクロ、VBAは知識がないので 関数で作成したいです。 ・できるだけエラー(#N/Aなど)表示されないようにしたいです。 説明が不十分で伝わりにくいかと思いますが よろしくお願いします。
- usamingolf
- お礼率85% (23/27)
- オフィス系ソフト
- 回答数3
- ありがとう数15
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 部署を"人事"と"企画"の両方で抽出する条件を追加する おはようございます、merlionXXです。 Operator:=xlOr, Criteria2:="=企画" と、OR条件で"企画"を加えれば可能です。 一応、各コードの動きに解説もつけておきました。(解説は’でコメントアウトしてますのでこのまま貼り付けてもOKです。) Private Sub Worksheet_Activate() 'このシートがアクティブになったら自動実行 With Sheets("Sheet1") 'Sheet1対して .AutoFilterMode = False 'オートフィルタ終了(あればエラーになるため) .Range("A1:E1").AutoFilter 'A1:E1にオートフィルタ設定 .Range("A1:E1").AutoFilter Field:=3, Criteria1:="=人事", Operator:=xlOr, Criteria2:="=企画" '左から3つ目のフィルタを"人事"と"企画"のOR条件で抽出 .Range("A1:E1").AutoFilter Field:=5, Criteria1:="未調整" '左から5つ目のフィルタを"未調整"で抽出 .Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A1") 'A1から最終セル範囲の可視セルをこのシートのA1以降に貼り付け .AutoFilterMode = False 'オートフィルタ終了 End With 'Sheet1に対する記述おわり End Sub
その他の回答 (2)
》 マクロ、VBAは知識がないので関数で作成したいです。 関数の知識も必要ない[フィルタオプションの設定]は如何ですか? 「エラー(#N/Aなど)表示され」ません。
お礼
ご回答ありがとうございます。 フィルタオプションの設定をwebで調べてみましたが とても便利ですね。 応用を使いこなせれば今回の表に対応できそうです。 どうもありがとうございました。助かりました。
- merlionXX
- ベストアンサー率48% (1930/4007)
それは関数では非常に難しいですね。 元データの名前はSheet1でいいんですね? 抽出先のSheet名はSheet2でいいんですね? VBAは知識がないなら勉強しましょう。 簡単ですので以下の手順を試してください。 1.Sheet2のタブを右クリックし、「コードの表示」を選択。 2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。 '*****ここから下をコピペ***** Private Sub Worksheet_Activate() With Sheets("Sheet1") .AutoFilterMode = False .Range("A1:E1").AutoFilter .Range("A1:E1").AutoFilter Field:=3, Criteria1:="人事" .Range("A1:E1").AutoFilter Field:=5, Criteria1:="未調整" .Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A1") .AutoFilterMode = False End With End Sub '*****ここより上までをコピペ***** 3.AltキーとF11キーを同時に押してワークシートへもどります。 これでSheet1に入力(変更)したあとでSheet2を選択すると、そのようになります。
お礼
ご回答ありがとうございます。 求めていたものは、まさに、コレです!! セル番号など変更して利用させていただきたいのですが 部署を"人事"と"企画"の両方で抽出する条件を追加することが 可能であればどのような条件を入力すればよいでしょうか? 入力箇所はわかるので 追加のコード(?)を教えていただけると幸いです。 よろしくお願いいたします。
関連するQ&A
- 別のブックから今のシートに自動更新
元データ(ブックAシート1)を更新するたび 条件にあったデータを 別ブックのシートに自動的に抽出したいのですが ブックBを開いたらブックAが開きシート1の抽出をブックBシート1にコピーしたいのですがVBAコードを教えてください。 ◇ブックAシート1◇ ※元データ A B C D F 1 氏名 役職 部署 年齢 移動時期 2 山田 社員 開発 45 未調整 3 田中 社員 人事 42 4/1~ 4 鈴木 派遣 企画 30 5 高橋 役員 人事 50 未調整 6 坂野 社員 企画 33 未調整 7 井上 派遣 企画 29 未調整 ◇ブックBシート1◇ ※部署が人事で移動時期が未調整の人のみ抽出 A B C D F 1 氏名 役職 部署 年齢 移動時期 2 高橋 役員 人事 50 未調整 説明が不十分で伝わりにくいかと思いますが よろしくお願いします。
- ベストアンサー
- Visual Basic
- VBA で抽出したデータが一定数まできたら、異なるセルに折り返して抽出するように設定したい。
VBA で抽出したデータが一定数まできたら、異なるセルに折り返して抽出するように設定したいです。 ◇シート1◇ ※元データ A B C D 1| 氏名 役職 部署 年齢 ―――――――――――――――― 2| 山田 社員 開発 45 3| 田中 社員 人事 42 4| 鈴木 派遣 企画 30 5| 高橋 役員 人事 50 6| 坂野 社員 企画 33 7| 井上 派遣 企画 29 ◇シート2◇ 条件1.役職は"役員"で、部署が"人事"の人の 氏名、役職、部署をA3から順に抽出する 条件2.A列のデータが9行目まできたら D3に抽出されるようにする A B C D E F 1 氏名 役職 部署 氏名 役職 部署 2 高橋 役員 人事 3 4 5 6 7 8 9 ―――――――――――――――――――― ちなみにこのサイトで以下のコードを作成してもらいましたが これだとデータ元の全ての行が抽出されてしまいます。 Private Sub Worksheet_Activate() With Sheets("Sheet1") .AutoFilterMode = False .Range("A1:E1").AutoFilter .Range("A1:E1").AutoFilter Field:=2, Criteria1:="役員" .Range("A1:E1").AutoFilter Field:=3, Criteria1:="人事" .Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A3") .AutoFilterMode = False End With End Sub 条件2のデータを折り返す条件が難しいようであれば 条件1の3列のみ抽出する方法で結構ですので教えてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル 複数のシートからデータの摘出
こんにちは教えてください。 複数のExcelシートから、重複データの抽出を行いたいのですが ご教授お願いいたします。 現在バーション2010 元データ シート1 A B C D 1 氏名 役職 部署 年齢 2 山 社員 開発 45 3 下 社員 人事 42 4 川 役員 人事 50 5 目 社員 企画 33 6 高 平 人事 50 7 坂 平 企画 33 シート2 A B C D 1 氏名 役職 部署 年齢 2 田 社員 開発 45 3 田 社員 人事 42 4 高 役員 人事 50 5 坂 社員 企画 33 6 高 平 人事 50 7 坂 平 企画 33 シート3も同じ様にあり今後20シートまで行く予定 集計用 シート21 A B C D 1 検索条件 2 人事 3 開発 4 5 6 氏名 役職 部署 年齢 7 8 9 10 部署で検索条件を行い現在2種類ですが増えて行き30種類を超える予定です 諸先輩方のVBAを見よう見まねで組んだのですが エクセルの2003で動かすと上手くいきません。 もともとを理解していないのでダメだと思うのですが 宜しくお願いします。 又最初から、20シート 30種類のマクロを組み 問題なく動く様にもしたいです。 Sub オートフィルター() For i = 1 To 3 With Worksheets(i) .AutoFilterMode = False .Range("A1:E1").AutoFilter For k = 2 To 3 .Range("A1:E1").AutoFilter Field:=5, Criteria1:=Range("B" & k).Value .Range(.Range("A2"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A65536").End(xlUp).Offset(1) .AutoFilterMode = False Next k End With Next i End Sub
- ベストアンサー
- その他MS Office製品
- エクセルで複数の抽出条件から別シートに氏名を記載
シート名「社員名簿」に個人情報のリフトがあります。別シートに抽出する条件を設定しておくと、名前のみが記載されているという計算式を教えて頂きたいです。 シート名:社員名簿 A 氏名 B 職場 ←製造1課・製造2課・製造3課・製造4課・人事課・総務課・・・ C 役職 ←社長・課長・係長・班長・空白は役職なし D 男女別 男は1 女は2 E 雇用形態 ←正社員1 準社員2 パート3 アルバイト4 派遣社員5 F F以下は抽出条件でない社員情報 G H I 別のシートに抽出条件を設定すると氏名のみが記載されるようにしたいのです。 例えば A 製造1課の係長 正社員 男 の全て B 製造1課の役職のついていない正社員の男全て C 製造1課のパートの女 エクセル初心者で、上司から今週中に考えなさいと言われるものの相談する方がいなくて・・・ 申し訳ないのですが、教えて頂きたく、お願い申し上げます。
- 締切済み
- オフィス系ソフト
- EXCELにて3つの条件を違うシートに抽出したいです。
エクセルで元データ(sheet1)を3つの条件にあったデータを別シート(sheet2)に抽出し、 なおかつ抽出したデータを元データ(sheet1)から消去する方法はありますか? できれば関数でお願いします。 ☆シート1☆※元データ A B C D 1 氏名 出身 作業 時間 2 鈴木 愛知 1 1.0 3 渡辺 静岡 2 1.5 4 鈴木 愛知 2 2.0 5 松坂 岐阜 3 0.5 6 鈴木 愛知 3 1.0 7 鈴木 愛知 4 1.5 8 森田 三重 2 0.5 ☆シート2☆ A B C D 1 氏名 出身 作業 時間 2 鈴木 愛知 1 1.0 3 鈴木 愛知 2 2.0 4 鈴木 愛知 3 1.0 5 鈴木 愛知 4 1.5 補足 ・シート2の条件として『氏名』と『出身』が同じでなおかつ『作業』の1,2,3,4がある人のみ。 このとき、『作業』が4がある人のみ抽出したいです。 ・抽出したときにシート1に抽出したデータ(例では鈴木)が消えるようにしたいです。 説明が不十分で伝わりにくいとは思いますが、 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- あるシートから条件に合うデータだけを別シートに抽出させる
会社で上司に質問されたのですが、不明だったので教えてください。 元リストが入力してあるシート 番号 氏名 フリガナ 会社名 部署名 役職 参加費 1 太郎 タロウ ○×株式会社 経理 課長 \1000 2 花子 ハナコ 株式会社△ 総務 \1500 3 次郎 ジロウ □□株式会社 人事 課長 \1000 このようなデータが100件以上あります。 この中から、参加日が1000円の人だけを下記のレイアウトで抽出をしたいのです。 抽出先リスト 番号 氏名 フリガナ 1 太郎 タロウ 3 次郎 ジロウ ※元リストは今後増える予定。 ※リストが増えた際の、再抽出はできるだけ自動でやりたい。 ※VBA(マクロ)は極力使いたくない(余計なメッセージが出ると余計混乱するので) フィルタオプションの設定を提案したのですが、「操作ごとに範囲を指定するのが面倒」とのことで却下されてしまいました。 オートフィルタで抽出して、コピペの方法も毎回コピペするのが面倒とのこと。 このわがままな上司を納得させる方法、ご存じないですか? もし分かる方がいましたら、ご教授下さい。 よろしくお願いします。 使用環境:Excel2000/WinXP
- ベストアンサー
- オフィス系ソフト
- エクセルで複数条件で別シートに抽出する方法を教えてください。
エクセルで複数条件で別シートに抽出する方法を教えてください。 sheet1にデータ 氏名 年齢 通算勤務年数 鈴木 47 歳 20 年 福田 46 歳 24 年 横山 46 歳 20 年 大高 35 歳 17 年 sheet2に抽出後のデータ 35歳かつ通算勤務年数10年以上の職員 大高 35 歳 17 年 46歳以上かつ通算勤務年数20年の職員 横山 46 歳 20 年 としたいのですが,抽出する方法を教えてください。
- 締切済み
- オフィス系ソフト
- Excelで特定の行だけ別シートに抽出する方法
sheet1に下記のリストを作ります。 番号 名前 郵便番号 住所 電話番号 会社名 部署 1 高橋 〒111-1111 東京都 00-0000-0000 ○× 人事 2 田中 〒222-2222 神奈川県 111-11-1111 △□ 営業 3 佐藤 〒333-3333 埼玉県 22-2222-2222 ・・・・ ・・・・ sheet2のA1に番号を入力すると「1」とした場合 名前 郵便番号 住所 部署 高橋 〒111-11111 東京都 人事 というように該当の列の特定の列だけを表示させる方法はありますでしょうか? 自動で抽出したいのですが、なにとぞよろしくおねい致します。
- 締切済み
- Excel(エクセル)
- Excelで、複数条件で抽出した複数データを別シートに出力したい
Excelで、複数条件で抽出した複数データを別シートに出力したい sheet1のデータから、sheet2に地区と班を指定してデータを抽出したいのです。 関数でなんとか出来るでしょうか? sheet1 A B C D 地区 班 番 氏名 1 1 1 岩井 雅功 1 1 2 湯浅 将也 1 1 3 滝沢 由宇 1 2 1 根本 さやか 1 2 2 近藤 守 1 2 3 永島 ひろみ 1 2 4 小峰 遥 sheet2 A B C D E F 区 班 番 氏名 区 班 1 1 1 岩井 雅功 1 1 1 1 2 湯浅 将也 1 1 3 滝沢 由宇
- ベストアンサー
- オフィス系ソフト
- EXCEL 元データを更新したら別シートも更新
シート1に所属・役職・氏名のデータがあります(元データ)。 その他に所属別に分かれたシートが複数あります(データは元データの役職・氏名)。 シート1のデータを更新したら、所属別に分かれたシートの内容も自動的に更新されるというようなことはできるでしょうか? シート1の更新は人数の増減もあるし、所属、役職が変わるケースも出ててくるし、データの位置も変わるので=’sheet1’A1のような式を入れれば良いというようなものではありません。
- ベストアンサー
- その他MS Office製品
お礼
朝からご回答いただき、助かりました。 ご丁寧にコメントまで入れていただき、 大体の内容を理解できたので、編集して資料作成間に合いました! どうもありがとうございました!