• ベストアンサー

検索機能をつけたいと考えています。

エクセルでタイムカードを作っています。 シート1で入力した氏名・勤務時間等が、シート2にとび、一覧表になっています。 シート3を検索シートにして、シート2の一覧表から名前で検索をかけたいのです。 (やりたいこと) ・VLOOKUPで一覧表から、検索した名前がでている勤務時間や諸項目をシート3に反映したい。 ・複数ある同じ人の項目をすべて表示させたい。 (困っていること) ・VLOOKUPで、検索値を文字にしたい場合、うまく検索されない。 ・タイムカードなので、同じ名前の人が何回も出てくる。 <シート3に作った式> シート3のC2に名前をいれて検索をかけたいのです。 =VLOOKUP(C2,Sheet2!A:C,10) ★範囲のSheet2!A:Cというのは、名前が入っているセルが結合されているためです。 どなたか助けてください。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>VLOOKUPで一覧表から、検索した名前がでている勤務時間や諸項目をシート3に反映したい。 >・複数ある同じ人の項目をすべて表示させたい。 >=VLOOKUP(C2,Sheet2!A:C,10) VLOOKUPでは、同じものの検索はできませんね。 それから、なるべく結合セルを使うのはやめたほうが良いです。関係のない部分のCOPY & PASTE時などに、不都合な問題が起きます。一応、2002までについて、そのバグは、残っています。 以下は、配列数式ですから、配列の確定を、式を、一旦入力したら、目的の式にF2を押して、『ShiftとCtrlを押しながらEnterキー』を押すようにします。 =IF(COUNTIF(Sheet2!$A$1:$A$20,$C$2)>=ROW(A1),INDEX(Sheet2!$A$1:$J$20,SMALL(IF(Sheet2!$A$1:$A$20=$C$2,ROW($A$1:$A$20),""),ROW(A1)),10),"") Enter で、式には、{ =式 } という中カッコがつくはずです。 ***** $A$1:$A$20 は、データ範囲です。 データ範囲は、必ず、予想される範囲内で使います。 A:C などという列のみを指定するような書き方は、この式では出来ません。 ROWの中にある範囲は、実際の範囲ではなく、範囲の高さ(幅)のみを合わせ、必ず、$A$1から始めるようにします。 >=VLOOKUP(C2,Sheet2!A:C,10) 列数10ということですから、INDEX関数のデータ範囲は、A列からJ列ということにしました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • saburo0
  • ベストアンサー率35% (76/216)
回答No.1

・VLOOKUP(検索値, 範囲, 列番号, 検索の型) まず、「=VLOOKUP(C2,Sheet2!A:C,10)」という式はエラーになってませんか? A~Cは、3列しかないので、列番号の所は、1~3までしか対応出来ないと思います。 また、その名前がソートされていない場合は、検索の型に「false」と入れないと違う値が出ると思います。 さらに、複数の場合は単純には検索できません。なんらかのユニークなキーを作らなければなりません。 質問の意図通りか分かりませんが、適当に参考になりそうなのを作ってみました。1シートになっていますが。 「ここから」「ここまで」の間の部分をメモ帳などのテキストエディタへコピー・貼り付けし、「Q1405360.slk」等の名前で保存し、エクセルで開いて確認して見てください。 少しここには書きづらいので、こういう形でご了承ください。 意図と違うものだったり、分からない事等御座いましたら補足願います。 -------------ここから------------- ID;PWXL;N;E P;PGeneral P;P0 P;P0.00 P;P#,##0 P;P#,##0.00 P;P#,##0;;\-#,##0 P;P#,##0;;[Red]\-#,##0 P;P#,##0.00;;\-#,##0.00 P;P#,##0.00;;[Red]\-#,##0.00 P;P"\"#,##0;;"\"\-#,##0 P;P"\"#,##0;;[Red]"\"\-#,##0 P;P"\"#,##0.00;;"\"\-#,##0.00 P;P"\"#,##0.00;;[Red]"\"\-#,##0.00 P;P0% P;P0.00% P;P0.00E+00 P;P##0.0E+0 P;P#\ ?/? P;P#\ ??/?? P;Pyyyy/m/d P;Pd\-mmm\-yy P;Pd\-mmm P;Pmmm\-yy P;Ph:mm\ AM/PM P;Ph:mm:ss\ AM/PM P;Ph:mm P;Ph:mm:ss P;Pyyyy/m/d\ h:mm P;Pmm:ss P;Pmm:ss.0 P;P@ P;P[h]:mm:ss P;P_ "\"* #,##0_ ;;_ "\"* \-#,##0_ ;;_ "\"* "-"_ ;;_ @_ P;P_ * #,##0_ ;;_ * \-#,##0_ ;;_ * "-"_ ;;_ @_ P;P_ "\"* #,##0.00_ ;;_ "\"* \-#,##0.00_ ;;_ "\"* "-"??_ ;;_ @_ P;P_ * #,##0.00_ ;;_ * \-#,##0.00_ ;;_ * "-"??_ ;;_ @_ P;P\$#,##0_);;\(\$#,##0\) P;P\$#,##0_);;[Red]\(\$#,##0\) P;P\$#,##0.00_);;\(\$#,##0.00\) P;P\$#,##0.00_);;[Red]\(\$#,##0.00\) P;Pm/d/yy P;Pyyyy"年"m"月"d"日" P;Ph"時"mm"分" P;Ph"時"mm"分"ss"秒" P;Prr\.m\.d P;Prr"年"m"月"d"日" P;Pyyyy"年"m"月" P;Pm"月"d"日" P;FMS Pゴシック;M220 P;FMS Pゴシック;M220 P;FMS Pゴシック;M220 P;FMS Pゴシック;M220 P;EMS Pゴシック;M220 P;EMS Pゴシック;M120 F;P0;DG0G8;M270 B;Y11;X12;D0 0 10 11 O;L;D;V0;K47;G100 0.001 F;W1 1 2 F;W2 2 13 F;W3 3 1 F;W4 4 5 F;W5 6 6 F;W7 7 3 F;W8 8 24 F;W9 9 2 F;W10 10 7 C;Y1;X8;K"↓名前入力(シート3のC2)" C;X11;K"検索結果" C;Y2;X1;K"ユニークキー作成" C;X4;K"名前" C;X5;K"A項目" C;X6;K"B項目" C;X8;K"cccc" C;X11;K"A項目" C;X12;K"B項目" C;Y3;X1;K1;ECOUNTIF(R3C[+3]:RC[+3],RC[+3]) C;X2;K"1aaaa";ERC[-1]&RC[+2] C;X4;K"aaaa" C;X5;K5943 C;X6;K66 C;X9;K1 C;X10;K"1cccc";ERC[-1]&R2C8 C;X11;K9165;EVLOOKUP(RC10,R3C2:R11C6,4,FALSE) C;X12;K1;EVLOOKUP(RC10,R3C2:R11C6,5,FALSE) C;Y4;X1;K1;ECOUNTIF(R3C[+3]:RC[+3],RC[+3]) C;X2;K"1bbbb";ERC[-1]&RC[+2] C;X4;K"bbbb" C;X5;K3251 C;X6;K86 C;X9;K2 C;X10;K"2cccc";ERC[-1]&R2C8 C;X11;K660;EVLOOKUP(RC10,R3C2:R11C6,4,FALSE) C;X12;K53;EVLOOKUP(RC10,R3C2:R11C6,5,FALSE) C;Y5;X1;K2;ECOUNTIF(R3C[+3]:RC[+3],RC[+3]) C;X2;K"2aaaa";ERC[-1]&RC[+2] C;X4;K"aaaa" C;X5;K5355 C;X6;K20 C;X9;K3 C;X10;K"3cccc";ERC[-1]&R2C8 C;X11;K6960;EVLOOKUP(RC10,R3C2:R11C6,4,FALSE) C;X12;K83;EVLOOKUP(RC10,R3C2:R11C6,5,FALSE) C;Y6;X1;K1;ECOUNTIF(R3C[+3]:RC[+3],RC[+3]) C;X2;K"1cccc";ERC[-1]&RC[+2] C;X4;K"cccc" C;X5;K9165 C;X6;K1 C;X9;K4 C;X10;K"4cccc";ERC[-1]&R2C8 C;X11;K#N/A;EVLOOKUP(RC10,R3C2:R11C6,4,FALSE) C;X12;K#N/A;EVLOOKUP(RC10,R3C2:R11C6,5,FALSE) C;Y7;X1;K2;ECOUNTIF(R3C[+3]:RC[+3],RC[+3]) C;X2;K"2bbbb";ERC[-1]&RC[+2] C;X4;K"bbbb" C;X5;K5250 C;X6;K66 C;X9;K5 C;X10;K"5cccc";ERC[-1]&R2C8 C;X11;K#N/A;EVLOOKUP(RC10,R3C2:R11C6,4,FALSE) C;X12;K#N/A;EVLOOKUP(RC10,R3C2:R11C6,5,FALSE) C;Y8;X1;K2;ECOUNTIF(R3C[+3]:RC[+3],RC[+3]) C;X2;K"2cccc";ERC[-1]&RC[+2] C;X4;K"cccc" C;X5;K660 C;X6;K53 C;Y9;X1;K3;ECOUNTIF(R3C[+3]:RC[+3],RC[+3]) C;X2;K"3cccc";ERC[-1]&RC[+2] C;X4;K"cccc" C;X5;K6960 C;X6;K83 C;Y10;X1;K3;ECOUNTIF(R3C[+3]:RC[+3],RC[+3]) C;X2;K"3aaaa";ERC[-1]&RC[+2] C;X4;K"aaaa" C;X5;K5353 C;X6;K97 C;Y11;X1;K4;ECOUNTIF(R3C[+3]:RC[+3],RC[+3]) C;X2;K"4aaaa";ERC[-1]&RC[+2] C;X4;K"aaaa" C;X5;K3905 C;X6;K69 E -------------ここまで-------------

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VLOOKUPで検索結果が複数あった場合の表示

    こんにちは。 初めて質問させていただきます。 Excelで以下のような表を作りたいと思っています。 (シート:志望校調査)   A      B 1  氏名     志望校 2 鈴木智子   明治大学 3 鈴木智子   早稲田大学 4 鈴木智子   慶応大学 5 鈴木智子   成蹊大学 ↓ (シート:生徒別志望校一覧)   A     B    C      D     E 1 氏名     志望校1 志望校2 志望校3  志望校4 2 鈴木智子   明治大学 早稲田大学 慶応大学  成蹊大学 VLOOKUPを使って氏名を検索値にして表を作ろうと したのですが、2件目以降のデータをどのように取得したら よいかわかりません。 上記のような表を作るよい方法がありましたら ご教授いただきたく、よろしくお願いいたします。 ちなみに、今作成している表の、氏名の入っているセルは 上下のセルを結合させたものであるため、配列を使った数式が 使用できませんでした。 セルの結合を解除することはできないため、配列を使用しないで 結果を得る方法があれば教えていただけないでしょうか。 よろしくお願いいたします。

  • #N/Aとは?(すみません長文です)

    いつも参考にさせていただいています。 Windows98のExcelでIF関数とVLOOKUP関数を使った表を作っているのですが、 式を入力したセルが『#N/A』となってしまい困っています。 <Sheet1>                A   B   C   D          1 コード  氏名  項目1 項目2 2 0001 佐藤太郎 3 0002 佐藤次郎      4     ・ 5     ・ <Sheet2>   A    B   C   D 1 氏名  項目1 項目2 2 佐藤次郎 2 10 3 加藤花子  4 15   4 佐藤太郎  1 8 5 <Sheet2>に元のデータが入っています。<Sheet1>の"C2"以降に式をいれ、 氏名で検索してデータを参照できるようにしたいです。 それで式を =IF(A2="","",(VLOOKUP(B2,Sheet2!$A$1:$K$126,2,FALSE))) と入れたのですがエラーになってしまいました。 できればどちらのシートも並べかえずに使いたいと思っています。 どなたか解決策をご存知でしたら教えて下さい。よろしくお願い致します。

  • Excel2007 検索値の桁数を減らして検索

    例えば「F310」という検索値を、検索先の表から探したいのですが、そこでは「F31」や「F」といった短縮された文字で登録されています。 フル(4桁)で探し、無ければ3桁、それでも無ければ2桁、1桁...と、1桁ずつ減らしながら検索させる方法を教えて下さい。 また、検索先が常に検索値の左端から始まるとは限らないので、ワイルドカードを使おうと思っています。 1回だけ桁を削って検索だけなら、次のような式が作れたのですが、 =IF(ISERROR (VLOOKUP("*"&LEFT(A1,3)&"*",sheet!$A$1:$C$100,3,FALSE)), "なし", VLOOKUP("*"&LEFT(A1,3)&"*",sheet!$A$1:$C$100,3,FALSE))) これを4桁→3桁→2桁→1桁 と繰り返させることが出来ません。。 ご教示お願いします。

  • 検索の仕方を教えて下さい

    Excelの検索の仕方を教えて下さい。 下記のような表があります。  A B C D E D … 1 あ い う え お か 2 1 A氏 5 3,198 35 計算式       6 3,215 27       7 3,148 41       8   0 0       9   0 0 7 2 B氏 5 18,000 25       6 17,250 41       7 18,140 30       8    0 0       9    0 0 1行目には、文字列が入力されています。 A2~A6・B2~B6及びA7~A11・B7~B11はセルが結合してあり、それぞれ1つのセルになっています。 D2に計算式を入れる場合ですが… 別のシートに表があり、=IF(Sheet2!A1=0,0,ここからの計算式です。) Sheet2のA1には数字の1が入力されています。 まず、A2の1という数字を検索し、次にC列の5を検索し、5の横列E列の数字(3,198)を求める。 C列とE列の交わる値を結果と出したいのです。 =IF(Sheet2!A1=0,0,VLOOKUP(Sheet2!A1,A2:E11,INDEX(C2:E11,MATCH(5,C2:C11,0),MATCH("え",C2:E2,0)))) としたのですが、計算結果は#REF!です。 どのように計算式を立てれば良いのでしょうか?

  • エクセル、VBA、抽出複数検索について

    エクセル、VBA、VLOOKUP、MATCH関数等について出来る方法があれば教えてください。 インチごとに分けてあるシートがあり、(在庫表です) これを参照して、別ブックへVLOOKUP等を使って、サンプルデータのシート4のように表示させたいのですが、 何か方法を使って出来ることは可能でしょうか? 問題点が複数あります 1、VLOOKUPの範囲について、B列が結合されていて、C列は複数行あるため、商品名が入ってきません。 C列については、何千件とデータがあるため、結合することは不可能です。 一致している条件としては商品コードが必ずあり、商品名には「/」が入っております。 =CONCATENATEとVLOOKUPは一緒に使うことは可能ですか? もしくはINDEX関数やIF、SUMPRODUCT等を使うのでしょうか? シート4のような形に出来る方法があれば、教えてほしいです。 VBAは詳しくはないのですが、VBAで出来るのであれば、教えてほしいです。 在庫表はとても作り方が悪いのですが、これを作り直すと言うことは、不可能です。 グループ会社で使っているため、なんとかこの在庫表を使いたいです。 VBAでA列をA5からA100にコードのみ入れた場合、B列に商品名が入るようにVBAで作ることは可能でしょうか? もしくは、検索条件を2つ使って、一つは商品コード完全一致+あいまい検索で【/】で商品名を入れることは可能でしょうか? 関数は調べたのですが、関数では難しいのかなと思います。 宜しくお願い致します。

  • Vlookup関数で検索結果がエラーになってしまう

    お世話になります。 Vlookup関数の質問となります。 =VLOOKUP(C2,Sheet2!$A$2:$E$685,1,FALSE) 検索値  →リストを使用(元データはSheet2の指定したセル範囲の表の2列目のデータ) 範囲 →Sheet2の特定のセル範囲 列番号 →1(ここは100-01、100-02などの番号が入力されています) 検索方法 →false(完全一致) この式で「#N/Aエラー」が発生してしまいます。 単純に「氏名」から「社員番号」を引っ張りたいだけなのですが、 なんでエラーになるのでしょうか? 範囲に指定した表には空白行はありますが、書式設定などは特に問題はないです。 恥ずかしい質問なのは十分に理解していますが、 教えて頂きたく思います。 よろしくお願い致します。

  • 関数について

    二つのシートがあります。 一つのシートには、二つの表があり名前を定義しています。 もう一方のシートでVlookupとindirectを使い検索できるようにしたいのです。 シート(1) A B C D 表1 101 名前 果物 表2 102 名前 野菜 ‥ シート(2) 表1           表2 A B C D E F 101 鈴木 バナナ 101 斉藤 トマト 102 佐藤 リンゴ 102 吉田 ピーマン 103 山口 ミカン 103 三浦 きゅうり 104 山田 マンゴー 104 加藤 大根 シート(2)には名前定義をしています。 名前、表1は=シート名!A1(101)~C4(マンゴー)です。 表2は=シート名!D1(101)~F4(大根)です。 シート(1)のA1、B1に入力をすると自動的にシート(2)の二つの表を切り替えてみにいくようにしたいのです。 シート(1)のC1には、=vlookup(B1,indirect(A1),2,0) D1には、=vlookup(B1,indirect(A1),3,0) と入力していますが、N#Aとなります。 困っています。どうか よろしくお願いします。

  • エクセルのVLOOKUP関数で…(複数条件?の抽出)

    ●シート2、A列に部品正式名称、B列に部品略称の一覧表(部品の種類は約500点) ●シート3、A列に略称、B,C,D,E,F,G列と続けて寸法などの詳細を記した一覧表 があります。 ●シート1に検索一覧表として、B列(B3~B8)は項目、セルC3~C8にVLOOKUPでシート3の情報が抽出されるようにしてあります。 C1で略称を入力し抽出するのはOKなのですが、正式名称で入力しても同じようにシート3の情報を抽出するようにしたいです。 (IFを使って思いつく関数を組合わせてみたりしたのですが、うまくいきませんでした(TT) できたら関数で何か良い方法ありますでしょうか? 宜しくお願いします。

  • Excel検索関数で

    説明下手なのでわかりにくいかもしれませんがお願いします。 VBAを使わず、エクセルの関数のみを使って表のデータを抜き出し並びかえる作業をしてます。 表は複数あり、あらかじめ決められた順番に列を抜き出し、新たなシートに表を作ってます。 抜き出す時にVLOOKUPを使用しています。 抜き出す先の表にも検索値の列が存在してます。 一番最初にB列に基準となる列を抜き出し、B1を検索値、 抜き出したい列のある表を検索範囲(仮に○○!A1:C5とします) 抜き出す列は1列目(A列)なので1、 検索の型はFalseにします。 以上を式にすると、 =VLOOKUP($A1,○○!$A$1:$C$5,1,0)となってるのですが、 目的のA列が抜き出せません。 ちなみに、同じ式をオートフィルで引っ張るので絶対参照させてます。 また、抜き出す列より後の列が抜き出せないような状態です。 これでわかりますでしょうか? VLOOKUPじゃなくてもいいので何か方法はありませんでしょうか? 説明わかりにくくてすみません・・・

  • エクセルで内線表検索

    社員数が多いため複数行で作成されている内線表から、名称で内線を検索する方法を教えていただけないでしょうか。 VLOOKUPの組み合わなのかと思うのですが・・・ 内線表は印刷しても良いように部署/内線/名前が複数行で記載されております。 名前は氏名で記載されており、複数名で内線を使用する場合は スペース区切りで複数名の名前が記載されております。 氏と名は区切りなく連続で記載されております。 希望 (1) B1に氏名を入力するとC1に該当者の内線を表示 (2) 検索範囲はシート内の全データ(複数行で記載されているため) (3) 同姓の方が居ない場合は名字だけでも検索可能   A   B   C       D   E  F 1    検索名 検索結果 2 3 部署 内線 名前      部署 内線 名前 4 ABC 100 Aさん Bさん BCD 200 Cさん 5 ABC 101 Dさん  BCD 201 Eさん Fさん 6 ABC 102 Gさん Hさん BCD 202 Iさん 7 : : 8 : :

このQ&Aのポイント
  • 印刷の用紙サイズに「ハガキ」がない
  • お使いの環境について教えてください。iPhoneで接続方法は不明。
  • 関連するソフト・アプリや電話回線の情報が不明。
回答を見る

専門家に質問してみよう