エクセルで検索・表示の方法を教えてください

このQ&Aのポイント
  • エクセルでリストを作成し、特定の名前をクリックすると、その名前に関連する情報を表示したい場合、関数を使用します。
  • Sheet1に名前のリストを入力し、Sheet2に各人の詳細情報を入力します。
  • 関数を使用して、Sheet1で特定の名前を選択したときに、Sheet2の関連する情報を表示することができます。
回答を見る
  • ベストアンサー

エクセルで検索・表示の方法を教えてください。

Sheet1のA列にそれぞれの名前を入力し   A 1 aさん 2 bさん 3 cさん Sheet2に各人のリスト   A   B   C 1      身長 体重 2 aさん  160  65 3 bさん  170  70 4 cさん  155  60 と記入していきリストを作成しておき それをSheet1のD列 E列に aさんの名前をクリックすると aさんの     身長  160           体重  65 などリストを表示させたいのですが、 Sheet1のA列の名前表示は動かないで bさんをクリックするとE列の結果だけ変わるように したいのですが。関数がわかりません。 教えてください。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! ご希望の方法に一番近いのは、入力規則の「リスト」だと思いますが、 クリックでの方法となるとVBAになってしまいます。 その一例です。 ↓の画像のようにSheet2にデータの表があるとします。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてSheet1のA列を選択してみてください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'この行から Dim i As Long Dim wS As Worksheet Set wS = Worksheets("Sheet2") '←「Sheet2」は実際のSheet名に! If Application.Intersect(Target, Columns(1)) Is Nothing Or Target.Count <> 1 Then Exit Sub If Target <> "" Then If WorksheetFunction.CountIf(wS.Columns(1), Target) Then i = WorksheetFunction.Match(Target, wS.Columns(1), False) With Range("E1") .Value = wS.Cells(i, 2) .Offset(1) = wS.Cells(i, 3) End With Else MsgBox "該当データはありません。" End If End If End Sub 'この行まで ※ どうしても関数でやりたい場合は無視してください。m(_ _)m

autocampin
質問者

お礼

tom04様 早々のご教授、誠にありがとうございます。 VBAまではよく解らないのですが この記述を試してみます。

その他の回答 (2)

回答No.2

セルをクリックでは無理ですので代案です。 1. Sheet1で名前の定義([Ctrl]+[F3]) 名前:桜 参照範囲:=$A$1:INDEX($A:$A,COUNTA($A:$A)) 2. フォームツールバーからリストボックスを配置 3. (リストボックスの)コントロールの書式設定([Ctrl]+[1]) 入力範囲:桜 リンクするセル:B1 するとリストボックスをクリックすることでB1セルの数値が変わるので INDEX関数などで身長や体重を引っ張ってきます。 =INDEX(Sheet2!A:A,$B$1+1)&"の" # リストボックスをA列に重ねれば、それっぽい?

noname#187541
noname#187541
回答No.1

こんにちは。 >クリックすると これが条件にある限り、関数では無理でVBA(マクロ)になるでしょう。 検索自体は、VLOOKUP関数でできますが、この関数の第一引数である「検索値」をどうするかです。 ご質問の様な動作で検索値を変えるというのは、VBAでなければ無理と言うことになります。 代案として、どこかのセルを検索値として使用するセルにします。 このセルに「入力規則」のリストを使って、aさん・bさん・cさんを選ぶ様にします。 このようにしておけば、選べば表示が切り替わる様になるでしょう。

autocampin
質問者

お礼

早速ご教授有り難う御座います。 別セルを設けて「入力規則」のリスト使用では 解決していたのですが、個々の名前をクリックした 状態での表示を望んでおります。 有り難う御座いました。

関連するQ&A

  • エクセルのシート間の情報のやりとりについて教えて下さい。

    エクセルのシート間の情報のやりとりについて教えて下さい。 シート1で、以下のように配置し、 B列:年齢 C列:名前 D列:身長 E列:体重 これを30人分(30行)作成して、それぞれの値を記入しました。 シート2で、例えばA1に「20」と記入すると、B1にシート1の20行目のデータが「B1・C1・D1・E1」に記入されるようにしたいのです。 また、シート2のA2やA3も同様に「12」とか「10」とか、任意の値を入れると、シート1のその行数からデータを取得したいと考えています。 更にそのシート2で取得した情報を、シート3の任意のセルで文字列の中に埋め込みたいです。 もし、詳しい方がいましたら教えていただけないでしょうか。 お願いいたします。

  • excelのVLOOKUPで、照合後、値を表示

    VLOOKUP関数を利用して、商品送付後の入金管理を行いたいと思っています。 送付済(シート1) A列:名前  B列:金額  C列:名前&金額  D列:送付日  E列:     F列: 入金済(シート2) A列:名前  B列:金額  C列:名前&金額  D列:回収日  E列:入金日   「名前と金額が検索値と一致したら、送付済(シート1)のE,F列に、回収日と入金日を表示させる」ようにしたいです。 VLOOKUP関数では、二つの値の照合は出来ないとの事でしたので、C列=名前&金額をいれて、C列での照合をしたいと思っています。 照合後に、回収日と入金日を表示させる関数が分かりません。 ※照合後に値が無い場合は、エラーでなく空白で表示させたいです。 よろしくお願いいたしますm(__)m

  • エクセルの名前の定義について。

    ご覧いただきありがとうございます。 エクセルの名前の定義についての質問です。 (1)【sheet1】 A2:A6に『aa』、 B2:B10に『bb』、 C2:C6に『cc』という名前を付けたとします。 ちなみにそれぞれのセルには文字列が入力されています。 (名前の定義の《範囲》はブックではなく、sheet1) (2)【sheet2】 B2:D6に『aa』、 B7:D15に『bb』、 B16:D20に『cc』と、sheet1と同じ名前を付けました。 それぞれB列・C列・D列には数字が入力されています。 (名前の定義の《範囲》はブックではなく、sheet2) ちなみにA列には、sheet1に入力されている文字列と同じものが入力されています。 A2:A6にはsheet1で『aa』と名前をつけた範囲と同じ文字列。 A7:A15にはsheet1の『bb』と同じ文字列。 A16:A20には『cc』と同じ文字列です。 ここからが本題です! (3)【sheet3】 A2に何らかしら関数を入れて、【sheet1】で作った名前(aaやbbやcc)が1つ表示されるようにしたとします。 そしてB2には、A2で表示された名前の中の文字列が1つ表示されるようにします。 (例えばA2に『aa』と表示されたら、B2には◯◯) 更にC2には、B2に表示された◯◯という文字列を使って、【sheet2】の名前『aa』の中のB列と、A列にある◯◯とが交差するセルに入力されている数字(図でいう(5))を表示させる関数を入力したいのです。(INDEXやINDIRECT、MATCH関数など…) 他に例えば、A2に『bb』(sheet1の名前)、B2に★★と表示されたら、C2には【sheet2】の名前『bb』の中のB列と、A列にある★★が交差するセルに入力されている数字を表示させたいです。 同じように、今度は、D2には、B2に表示された◯◯という文字列を使って、【sheet2】の名前『aa』のC列と、A列にある◯◯の交差するセルに入力されている数字を表示させたいです。 長々とややこしくてすみません… 説明分かりますでしょうか?? つまりは【sheet3】のC2・D2・E2に入力する関数が知りたいです。 自分なりに関数を入力してみたのですが、A2で表示された名前がsheet1での名前なので、sheet2の情報を引き出す事が出来ません。 わざわざsheet1とsheet2でシートを分けたのは、同じシート内で同じ名前が付けられないと思ったからです! どなたか分かりましたら教えて下さい! どうぞよろしくお願い致します。 ※ちなみに、貼付した図の『・』は以下省略の意味で使ってます。

  • エクセル 別れたシートでの条件検索

    別れたシートでの検索で一致したものを探す関数について。 VLOOKUP関数だと列に対してだと思うのですが、行に対して検索したいです。うまく伝えられないので、例えば 【シート1】    A   B   C   1  555 2  666 3  777 4  222 【シート2】    A   B   C   D 1  777    555    222 2 3 上のようなシートがあり、 シート1のA列の番号がシート2の1の行に有ったら、 シート1のB列にOKと表示、無かったらNGと表示、 の様な関数ってありますか? どなたか解る方お願いします。

  • エクセル検索

    A  B         C 111 佐藤      【111】 111 岩本      佐藤 111 榎元      岩本 222 仙田      榎本 222 飯田 222 斉藤 333 飯原 333 佐野      【222】 444 鳥島      仙田 555 凛田      飯田             斉藤 Aの列にクラスの名が表示してあり、B列に名前が表示してあります。 A列B列ともに人数は増える可能性はあります。 それをリストにしたいので C列もしくは別シートにクラス別に縦で表示させるためには どのような数式を使えば表示可能になるでしょうか? 

  • エクセルの検索する関数について

    エクセルで質問です。 sheet2のA、B列の中から、sheet1のA、B列で同じ組み合わせの数字を探す。同じ組み合わせで見つかれば、sheet1の見つかった列に、D列÷E列の数字をG列に表示する関数の式を教えてください。 関数は不慣れなので宜しくお願いします。

  • エクセル リストから検索して部名を表示させたい

    エクセル初心者です、宜しくお願いします。 会社にてExcel2002を使用しております。 以下の様に2種類のシート別のデータがあります。 Sheet1には今期分の製番一覧表、Sheet2には今月に 取引のあった製番が入力されております。 Sheet2の列EへSheet1から検索して部名を表示させたい のです。Sheet1のデータは200ぐらいあり重複はしており ません。 ------------------------------------------------- Sheet1今期分の製番一覧表 列A A部 11111-1111-1 33333-3333-3 44444-4444-4 88888-8888-8 列B B部 22222-2222-2 55555-5555-5 66666-6666-6 77777-7777-7 ------------------------------------------------- Sheet2 今月に取引のあった製番 列A 製番 列B 金額 列C 数 列D 合計金額 列E 部名 ------------------------------------------------- マクロや関数について全く経験がありません。 どなたかご教授ください。よろしくお願いします。

  • エクセルで複数文字を検索する方法を教えてください。

    お世話になります。 エクセルで、関数を使用して、複数文字を検索する方法を教えてください。 具体的には、エクセルシートが2つあり(sheet1の名前は「姓名」、sheet2の名前は「該当」とします) sheet1(姓名)のA列に名前を入力して、sheet2(該当)のA列には、漢字600個を1文字ずつ縦に 並べたとします。(漢字600個は勿論全部違う漢字です) そこで、sheet1(名前)のA列に入力されている名前に対して、B列に関数を入れて、 sheet2(該当)のA列に該当する漢字があった場合は「当たり」と表示して、該当する漢字が 無い場合は空欄にする関数を教えていただけないでしょうか。 EXCEL2003になります。 よろしくお願いいたします。

  • Excelで、各行で割合が多いものを抜き出す方法

    Excelで、各行で、30%を超えるデータの「名前」を表示するにはどうすればよいでしょうか? たとえば、以下のように、 「各人が、最近100日間で朝ごはんの時に何を飲んだか?」を割合として示す表があったとします。 当然ですが、割合は 0から1.0の間です。 ---------------------------------------------------------------------    A    B    C    D    E    F    G 1  名前   牛乳   コーヒー 水    お茶   紅茶 2  A氏   0.20   0.40   0.40   0.00   0.00    3  B氏   0.22   0.00   0.28   0.50   0.00    4  C氏   0.00   0.00   0.10   0.50   0.00    5  ・・・・・・ (第一行には見出しを入力しています。第A列には名前を入力しています) --------------------------------------------------------------------- G列に、30%以上の頻度で選択された飲み物を表示したいのです。 (つまり、100日間で30日以上選択された飲み物です。) -----------------------------------------------------------------    A    B    C    D    E    F    G 1  名前   牛乳   コーヒー 水    お茶   紅茶   10%以上 2  A氏   0.20   0.40   0.40   0.00   0.00   コーヒー;水; 3  B氏   0.22   0.00   0.28   0.50   0.00   お茶; 4  C氏   0.00   0.00   0.10   0.90   0.00   お茶; 5  ・・・・・・ --------------------------------------------------------------- (飲み物の名前の間は別にセミコロンでなくても結構です) マクロとか使わず、ワークシート関数でできる方法があるといいのですが・・・。 よろしくお願いします!

  • エクセル2010 同じグループの顧客を表示

    エクセル2010での質問です。 顧客リスト約5000件の中から同じグループに該当する 顧客を表示したいのですがうまくいきません。 Sheet1のA列に顧客番号、B列に名前、C列にグループ番号が あります。 Sheet2のA1にグループ番号を入力すれば B1に名前、C1に顧客番号が表示できる方法を教えてください。 よろしくお願いします。

専門家に質問してみよう