• 締切済み

エクセルで複数の抽出条件から別シートに氏名を記載

シート名「社員名簿」に個人情報のリフトがあります。別シートに抽出する条件を設定しておくと、名前のみが記載されているという計算式を教えて頂きたいです。 シート名:社員名簿  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課のパートの女 エクセル初心者で、上司から今週中に考えなさいと言われるものの相談する方がいなくて・・・ 申し訳ないのですが、教えて頂きたく、お願い申し上げます。

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.7

質問をよく見たら、「社員名簿」シートから名前だけを抽出すればよいのですね。 その場合は(名簿が1000行以内の場合)、以下の式を入力して(コピー貼り付けして)下方向にオートフィルコピーしてください。 =INDEX(社員名簿!A:A,SMALL(INDEX(($B$2&$C$2&$D$2&$E$2<>社員名簿!$B$2:$B$1000&社員名簿!$C$2:$C$1000&社員名簿!$C$2:$C$1000&社員名簿!$D$2:$D$1000&社員名簿!$E$2:$E$1000)*10000+ROW($A$2:$A$1000),),ROW(A1)))&""

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

エクセルといえば関数と頭が行くようだが、エクセルの基本は操作です。 データーフィルタオプションの設定の操作を使ったことが無いのだろうが。 関数では抜き出しの課題は難しい。 そんなレベルのものが、既に出ている関数での回答の複雑な式が理解できるはずが無いように思う。 ーー データーフィルタオプションの設定を使う場合、条件がある方のシートで操作を始める。 リスト範囲は Sheet1(社員名簿)、条件はSheet2にあるとする。抽出結果もSheet2。 リスト範囲は社員名簿!A1:○○のようになる(他シートのセル範囲指定) 検索条件範囲はSheet2で項目見出しと条件内容を入れたセル範囲を指定。 「指定した範囲」と「抽出範囲」は、条件を入れたシートと同じシートを指定しないとダメなようだ(エクセルの制約)。 例データ Sheet1 氏名 職場 職位 山田 営業 課長 佐藤 営業 近藤 営業 鈴木 営業 田中 総務 課長 田中真 営業 部長 ーー Sheet2 条件 職場 職位 営業 課長 結果 Sheet2 氏名 職場 職位 山田 営業 課長 ーー あえて関数でやる1方法として、自称imogasi方式 例データ 氏名 職場 職位 山田 営業 課長 1 佐藤 営業 近藤 営業 鈴木 営業 田中 総務 課長 田中真 営業 部長 木村 営業 課長 2 E3の式は =IF(AND(B3=Sheet2!$A$2,C3=Sheet2!$B$2),MAX($E$1:E2)+1,"") 結果 上記の通り やっていることは、該当分に連続番号を(上の行から)振っている。作業列を使う事になる。 ーー 別シートで例えばSheet3で A2に =INDEX(Sheet1!$A$1:$C$12,MATCH(ROW()-1,Sheet1!$E$1:$E$100,0),COLUMN()) 右方向に式を複写 A2:C2の式を下方向に複写 結果 Sheet2のA2:C3 山田 営業 課長 木村 営業 課長 その他に注記する必要なこともあるが略(Googleで「imogasi方式」で照会すれば、関数を使う方法やその他の抜き出し問題の過去の質問回答例が判る) (#N/A #N/A #N/A を見えなくする式とか。)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

Sheet1のA2セル以下にデータベースのデータがあり(項目名が1行目)、別シートのB2セルから右方向に検索条件が入力されているなら、以下の数式を名前を表示するセルに入力して右方向および下方向にオートフィルコピーすればご希望のデータを表示することができます(添付画像参照)。 =INDEX(Sheet1!A:A,SMALL(INDEX(($B$2&$C$2&$D$2&$E$2<>Sheet1!$B$2:$B$1000&Sheet1!$C$2:$C$1000&Sheet1!$C$2:$C$1000&Sheet1!$D$2:$D$1000&Sheet1!$E$2:$E$1000)*10000+ROW($A$2:$A$1000),),ROW(A1)))&""

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

次のようにしてはどうでしょう。 ここでは社員名簿のシートをシート1として、抽出の条件およびその該当者の名前を表示させるためのシートをシート2として述べます。。 シート1ではA1セルからI1セルまでに項目名が入力されていてそれぞれのデータが2行目以降に入力されているとします。 シート2ではA2セルに職場、A3セルに役職、A4セルに男女別、A5セルに雇用形態の文字列がそれぞれ入力されているとします。抽出の条件はA列の項目に対応したB列の行に入力することにします。もしも、それ以外の条件で抽出をするのであれば対応したC列の行にその条件を入力します。第3の抽出をする場合にはD列にその条件を入力します。横の列を利用することで抽出の条件をいろいろに変えた名簿を表示させることができます。 なお、それぞれの抽出の条件での該当者の名簿はそれぞれの列の7行目以降に表示させることにします。 初めに作業列を作って対応することとしてシート1のJ1セルにはシート2B列条件、H1セルにはシート2C列条件などと入力します。 J2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(COUNTA(Sheet2!B$2:B$5)=0,"",IF(ASC(Sheet2!B$2&Sheet2!B$3&Sheet2!B$4&Sheet2!B$5)=ASC(IF(Sheet2!B$2<>"",$B2,"")&IF(Sheet2!B$3<>"",$C2,"")&IF(Sheet2!B$4<>"",$D2,"")&IF(Sheet2!B$5<>"",$E2,"")),MAX(J$1:J1)+1,"")) シート2では例えばB2セルには製造1課、B3セルには係長、B4セルには1、B5セルには正社員などと入力します。 B7セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(ROW(A1)>MAX(Sheet1!J:J),COUNTA(B$2:B$5)=0),"",INDEX(Sheet1!$A:$A,MATCH(ROW(A1),Sheet1!J:J,0))) 抽出の条件をシート2の2行目から5行目の間で列を変えて入力することでその該当者を7行目以降に表示することができます。

  • Mingguwu
  • ベストアンサー率60% (50/82)
回答No.3

はじめまして。おはようございます。 >例えば  A 製造1課の係長 正社員 男 の全て B 製造1課の役職のついていない正社員の男全て C 製造1課のパートの女 このように複数の社員名を一発検索できれば良いと思うのですが、関数を使用しても複数の社員名を検索するのは難しいと思います。 そこで、提案ですが「フィルタ」を使用してはいかがでしょうか? 「Excel 2003」の場合 (1).抽出したい項目  B 職場  C 役職  D 男女別  E 雇用形態  を選択します。 (2).メニューバーの「データ(D)」⇒「フィルタ(F)」⇒「オートフィルタ(F)」にチェックを入れます。 (3).抽出したい項目横に表示されたマーク部をクリックして、抽出条件をクリックすると表示されます。  (人事課と総務課のように複数選択する場合は、「オプション」をクリックし、条件を選択してください。) (4).抽出された社員名を選択し、COPY⇒貼り付けをすればどうでしょうか? 「Excel 2007」の場合 (1)、(4)は2003に同じです。 (2)は、「ホーム」⇒「編集」⇒「並べ替えとフィルタ」⇒「フィルタ(F)」です。 (3)は、抽出したい項目横に表示されたマーク部をクリックして、抽出条件を選択し「OK」をクリックします。 それと、該当する社員が何名居るかは、「DCOUNT関数」「DCOUNTA関数」で求められます。 切貼りですがEXCEL画像添付します。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 回答番号ANo.1です。  関数と作業列(補助的な計算処理を行うために使用する列)を使用して、別シートに抽出結果を表示させる方法に関しても、一応述べさせて頂きます。  今仮に、Sheet1のA1セルに「氏名」、B1セルに「所属」、C1セルに「役職」、D1セルに「性別」、E1セルに「雇用形態」、と入力されていて、Sheet1の2行目以下には、各社員の各項目ごとのデータが入力されているものとします。  そして、Sheet2のA1セルに「所属」、B1セルに「役職」、C1セルに「性別」、D1セルに「雇用形態」、A4セルに「氏名」と入力されていて、 Sheet2のA2セルに抽出する所属、B2セルに抽出する役職、C2セルに抽出する性別、D2セルに抽出する雇用形態、を入力すると、 Sheet3のA列を作業列として使用して、 Sheet2のA5以下に、抽出結果を表示するものとします。  まず、Sheet3のA2セルに次の関数を入力して下さい。 =IF(AND(OR(Sheet2!$A$2="",INDEX(Sheet1!$B:$B,ROW())=Sheet2!$A$2),OR(Sheet2!$B$2="",INDEX(Sheet1!$C:$C,ROW())=Sheet2!$B$2,AND(Sheet2!$B$2="役職なし",INDEX(Sheet1!$C:$C,ROW())="")),OR(Sheet2!$C$2="",INDEX(Sheet1!$D:$D,ROW())=Sheet2!$C$2),OR(Sheet2!$D$2="",INDEX(Sheet1!$E:$E,ROW())=Sheet2!$D$2)),ROW(),"")  次に、Sheet3のA2セルをコピーして、Sheet3のA3以下に(Sheet1のリストの行数を上回るのに充分な回数だけ)貼り付けて下さい。  次に、Sheet2のA5セルに次の関数を入力して下さい。 =IF(ROWS($5:5)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!$A:$A,SMALL('Sheet3!$A:$A,ROWS($5:5))))  次に、Sheet2のA5セルをコピーして、Sheet2のA6以下に貼り付けて下さい。  後は、Sheet2のA2セルに抽出する所属、B2セルに抽出する役職、C2セルに抽出する性別、D2セルに抽出する雇用形態、を入力すると、Sheet2のA5以下に、抽出結果が自動的に表示されます。  尚、上記の関数では、Sheet2のA2~D2の範囲に未入力のセルが存在すると、その欄の項目は抽出条件とはしないものとして、入力済みの条件にのみ合致する社員の氏名を表示する様になっています。  例えば、性別を指定するC2セルに何も入力されていない場合には、男女両方が表示されます。  そのため、Sheet1のリストにおいて、「役職」の欄に何も入力されていない役職の無い社員のみを抽出する場合に、Sheet2のC2セルに何も入力せずに抽出すると、役職の無い社員だけではなく、他の全ての役職の社員も抽出されてしまいます。  ですから、「役職」の欄に何も入力されていないか、或いは「役職なし」と入力されている、社員のみを抽出する場合には、Sheet2のC2セルに「役職なし」(鉤括弧は不要)と入力する事で、抽出を行って下さい。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 別のシートではなく、同じシートで、抽出条件に合わない行を飛ばして表示させるのでは駄目なのでしょうか?  Excelの[オートフィルター]と言う機能を使用すれば、同じシートを使用して(別シートに記載する事は出来ません)、条件に合うものだけを表示させる事が出来ます。  オートフィルターの使い方に関しては、以下の参考URLを御覧下さい。  尚、Excelのバージョンが、Excel2007以降のバージョンと、それよりも前のバージョンでは、操作方法が多少異なっていますので御注意下さい。 【参考URL】  よねさんのWordとExcelの小部屋 > エクセル基本講座 > オートフィルタ(データ抽出)   http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter.htm  よねさんのWordとExcelの小部屋 > エクセル2007基本講座 > オートフィルタの使い方   http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-filter.html

関連するQ&A

  • エクセルで複数の条件を抽出し自動的に別シートに反映する方法を教えてください。

    こんばんは。教えてください。 元データ(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など)表示されないようにしたいです。 説明が不十分で伝わりにくいかと思いますが よろしくお願いします。

  • 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にて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に抽出したデータ(例では鈴木)が消えるようにしたいです。 説明が不十分で伝わりにくいとは思いますが、 よろしくお願いします。

  • エクセルで複数条件で別シートに抽出する方法を教えてください。

    エクセルで複数条件で別シートに抽出する方法を教えてください。 sheet1にデータ 氏名 年齢  通算勤務年数 鈴木 47 歳   20 年 福田 46 歳   24 年 横山 46 歳   20 年 大高 35 歳   17 年 sheet2に抽出後のデータ 35歳かつ通算勤務年数10年以上の職員 大高 35 歳   17 年 46歳以上かつ通算勤務年数20年の職員 横山 46 歳   20 年 としたいのですが,抽出する方法を教えてください。

  • エクセルの重複データ抽出

    初めてのご質問です。2つの名簿をエクセルにシート別にまとめてありますが、氏名が重複しているものを別シートに抽出したいと思います。フィルタオプションでトライしたのですが、1つだけのセルに重複していない氏名が記載されたり・・と苦戦しております。何か良い方法があれば、非常に助かります・・。

  • エクセル 複数条件での抽出

    自社名簿(sheet1)と、系列会社の名簿(sheet2) A列:ID番号 B列:氏名 C列:所属グループ D列:支店 共に、同じ表です。  sheet1とsheet2を照らし合わせ、A~Dまでの情報が全て一致する(sheet2に重複してる)該当者のみに  sheet2のE列に★印が反映されるようにしたいのです。 条件が一つですと、沢山の簡易的な関数でわかりやすのですが、 複数の条件での方法が、他の質問者様の回答の説明をみてもしっくりきませんでした。 ご教授宜しくお願いします。

  • Excelで条件別にシートを振り分ける方法

    初心者です。よろしくお願いします。 Excelで条件別にシートを振り分ける方法を教えてください。 名簿の管理をしています。 シート1にNoや名前を入力し、条件ごとに別シートに行ごと自動で振り分ける方法がありますか? 情報を入力するのは、シート1のみで、 シート2~6を自動で振り分けたクラス名簿という形にしたいです。 現在、以下のようにシート1を作成してます。     列A   列B   列C   行1  No  氏名   クラス  行2  1   花子    A 行3  2   太郎    C 行4  3   二朗    B 行5  4   京子    B 行6  5   史郎    B 行7  6   典子    C 行8  7   公子    A ・ ・ これを、シート2はAクラス、シート3はBクラスという具合に、Noと氏名を振り分けたいです。 よろしくお願いいたします。

  • Excel VBA で条件を満たしたセルの値を別のシートに貼り付けるには?

    VBA初心者です。700行くらいあるリストの中から所属別の名簿を作りたいのですが、マクロを使えば簡単に出来ますか? データは、 A列にNO.、B列に氏名、C列に所属 となっていて、C列の所属ごとにSheet2,Sheet3・・・にB列の氏名だけの名簿を作りたいのです。 例えば、C列が”総務課”の人の氏名(B列)をSheet2のCell("A2")から行方向に、C列が”会計課”の人の氏名はSheet3のCell("A2")から行方向に という感じです。 Do~Loop を使ってみたり、If~Then を使ってみたりするのですがうまく貼り付けられません。 データの最終行が変化するので範囲の指定もよく分かりません。 どなたか教えて下さい。

  • Excelで特定も文字を含む行全てを、別のシートに抽出する方法を教えて

    Excelで特定も文字を含む行全てを、別のシートに抽出する方法を教えてください。 Excel2007で名簿を作成しています。 それぞれに、ある条件で「A」「B」「C」と3つに分類しています。 それぞれの分類ごとに、別シートに一括して抽出する方法をご教示ください。 例 Sheet1には (所属名)(コード)(氏名)(コード)(資格)(コード)(年数)(ランク)など14項目あります ※コードの一部には入力規則を使用したブルダウンで選択したり、lookup関数で、数字を入力すると所属名が表示されるようになっています 抽出条件となるランクは、年数のセルが●●以上であれば「A」、●●以下であれば「B」という関数を使用しています。 名簿に入力するごとに、「A」「B」「C」と別のシートに抽出させたいのです。 こちらのサイトでいろいろ検索し参考に試してみましたが、抽出できませんでした。 関数でもマクロでもいいので、抽出する方法を教えてくださると大変嬉しいです。 宜しくお願い致します。

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

    《どなたか、お教え下さい》   エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。 「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  

専門家に質問してみよう