• ベストアンサー

エクセル関数VLOOKUPで教えてください。 

エクセル関数VLOOKUPで教えてください。  シ-ト1にA列から学籍番号・B列に氏名・C列に点数(数値)を記入してあります。 シ-ト2に順位表を作成しA列にLARGE関数を使用してシ-ト1から点数降順(昇順)に表示しました。シ-ト2のB列に学籍番号 C列に氏名 をVLOOKUP関数でシ-ト1から抽出したいのですが、点数が同点の場合に当該複数名を表示せず単一名になってしまいます。VBA・マクロを使用せずに関数のみで同一点数獲得者の氏名を個別個々に表示させる方法を教えてください。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

まず、シート1に点数とは別に集計用点数を作ります。 例えば、点数がC2以降に入っているなら、D2に↓と入れて下にコピー =C2+COUNTIF(C3:C$100,C2)/100 #もし、同じ点数の人が100人以上いる可能性があるなら、最後の100を1000や10000に変えます。 で、シート2のLARGE関数は、点数ではなく、集計用点数で集計します。 LARGE関数の結果から学籍番号や氏名を取ってくる所はいいですよね? 最後に、シート2のA列の書式設定を、分類:数値、小数点以下の桁数:0にして、見た目を整えたら出来上がり。

19481228
質問者

お礼

ありがとうございました。 もやもやとしていました箇所が晴れたような気持ちです。 幾箇所か探していたのですが、この関数で差別化すれば大丈夫そうですものね。 早速使用させていただきます。 土曜日提出のため迷路のまっただ中でしたので助かりました。 本当にありがとうございました。 拝

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

ご提示の条件では、関数を利用した方法はできません。 ここはマクロ(エクセル操作を記録する方法)を利用した方が簡単と思いますが如何でしょうか。 マクロ⇒記録開始⇒シート1からシート2にデータをコピー&貼り付け操作⇒シート2で降順で並び替え操作⇒マクロ⇒記録終了

19481228
質問者

お礼

ありがとうございました。 頂戴いたしました際に御礼を申し上げたと思っておりましたのに送信されていませんでした。 深くお詫び申し上げます。 仲間内でいじりますのでマクロやVBAの使用は避けたいと思っておりました。 おかげさまで関数使用での解決方法を御提案いただき当該関数で処理することが出来ました。 それにしてもエクセルって異国語を習得するように色々な方法を皆様が持ってらっしゃってうらやましく感じました。 本当にこちらの不手際で御礼が遅くなりましたことお許しください。 拝

関連するQ&A

  • if関数とVLOOKUP関数について

    if関数とVLOOKUP関数について エクセル2003で以下のような表を2枚 (シート1とシート2です)作成しています。 上段がシート1で、左上「NO」からA1セルに なっています。 下段がシート2で、特別番号が付番される 人の対象者リストで、「氏名」 がA1セルです。 図が乱れてすいません。 シート1のB列の売上日、C列の氏名は 別ファイルから貼り付けています。 シート2は、特別番号を付番する人の 氏名リストですが、ここでは、便宜上 小文字のアルファベットにしています。 ここでしたい処理ですが、売上日及び氏名を シート1に貼り付けた際に、特別番号対象者 (シート2のリストに挙がっている人) が入ってきたとき、自動的にシート1の A列のNOの列に「特別番号」 との文言を表示させたいのです。 実際に数字を表示するのではなく、 「特別番号」の文字列を表示させたいです。 IF関数とVLOOKUP関数でできると思うのですが よくわかりませんでしたので、教えてください。 NO 売上日 氏名 1 1月1日 A 2 1月2日 B 特別番号 1月3日 a 特別番号 1月4日 b 特別番号 1月5日 c 3 1月6日 D 4 1月7日 E 特別番号 1月8日 e 特別番号リスト(シート2) 氏名 住所 a 東京都 b 大阪府 c 神奈川県

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • ExcelのVLOOKUP関数について教えて下さい

    AのシートにA列に番号、B列に会社名を入力、しB以降のシートは月毎別に作成し、番号を入力して会社名を引っ張ってくると言う形のVLOOLUP関数を作りました。 番号はバラバラに入力するので、1の後に50があったりその後に10があったりします。 今までそれで上手く会社名が引っ張ってこれたのですが、先日24行目に5という数字を入れたら、 「#N/A」のエラーが出ました。 エラー内容は「無効な値のエラー」と出ていますが、Aのシートには5のデータは入力されており、20以降の数字を入れると会社名が正しく表示されます。 関数が間違っているのかと思い、別シートと比べましたが同じでした。 ちなみに関数は次の通りです。Aのシートのデータは2行目から番号1→147行目に番号146のデータが入っています。 =IF(A24="","",VLOOKUP(A24,店名!B22:C167,2,FALSE)) 何がおかしいのか全く分からず、途方に暮れております。 アドバイスをお願いします。

  • エクセルのVLOOKUP関数

    エクセルでVLOOKUP関数を使ってます。 一般的には、たとえば製品番号(数字)を入力すると 製品名(文字列)を引いてくるという使い方でVLOOKUP 関数を設定すると思いますが、製品名を入力すると、製品番号を引いてくるように設定しようと思ったらうまくできません。 何かよい方法はありますか?

  • ExcelでのVLOOKUP関数について

    キー1を1000倍したうえで完全一致のVLOOKUP関数を使うと#N/Aエラーが発生します。 表示上は同じように見えますが内部的に異なる値となっているのでしょうか? 試しにエラー行に対して、キーとターゲットとなる当該セルを「=」でつないで確認しても「TRUE」となります。 添付画像は、 検索先としてA列に基準キーを130.168~130.192(step 0.001)で各行へ入力し、B列はA列を1000倍、C列はB列をROUND関数で整数値に丸めたものをキーとしました。 D列にVLOOKUPで参照する値を入力し、E列以降で以下の異なるパターンで値を参照しています。 (1)【E・F列】 ・E列に整数値をキーとして130168~130192(step 1)で入力。 ・E列をキーとしてB~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,B:D,3,FALSE)』 (2)【G・H列】 ・G列にE列/100をキーとして計算。 ・G列をキーとしてA~D列のVLOOKUP関数としています。   『=VLOOKUP(G3,A:D,4,FALSE)』 (3)【I列】 ・E列をキーとしてC~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,C:D,2,FALSE)』 シートを複製し、キーの入力範囲を0.001~0.025(E列は1~25)にした場合はエラーがでませんでした。 その他の確認としてはTEXT、JIS、ASCなどを組み合わせて文字列としたキー同士のVLOOKUPではエラーにならず値を参照できています。

  • エクセル関数 VLOOKUPで

    エクセル2007です A列に商品名 B列に価格 C列に税込価格(B1*1.05) の表があります。    A   B  C  |いちご|900|945|  |みかん|300|315|   D1にA列の商品名を選択して入力できるように 入力規則でドロップダウンリストがら選択にしました。 (範囲はA列です) E1には商品名を選択すると税込金額が反映されるようにしたいので、 =IF(D1="","",VLOOKUP(D1,A:C,3,1)) と入力しました。        D   E           D   E 正 |いちご|945|  →  誤 |いちご|315|   D1の商品名と同行の3列目の値を返す…とやりたかったのですが、 別の行の値を返します。(C列の値であることは確かなのですが…) なぜでしょうか? また、テーブルを昇順で表示とあるのですが、優先はどの列でしょうか? A列優先でもD列優先でも値が違います。

  • エクセル「VLOOKUP関数」についての質問です。

    エクセル「VLOOKUP関数」についての質問です。 初心者に近いので応用が浮かびません・・・ VLOOKUP関数で「#N/A」部分には指定の文字を表示させ、返ってきた値をブランクで表示させたいのですがエラー表示は「IF関数」で「ISNA」で""の間に特定の文字を指定するところまでしか出来ず困っています。 【例】 <4月在籍者>  A      B     C 個人コード  名前   在職者 11111    あいう子  退職 22222    かきく子 33333    さしす子  退職 44444    たちつ子 55555    なにぬ子 C列に5月在籍者のデータから検索をかけ、同氏名が存在しない場合はエラーになります。 そこでエラーは「退職」と表示させつつ、同氏名が存在した場合は同氏名を表示させるのではなく、ブランクにしたいのです。 わかりにくい説明ですが どうか よろしくお願いいたします。

  • エクセルのVLOOKUP関数について

    エクセルのシート(1)に組合員コード(7桁),氏名,商品,数量・・・が入力してあって、列を挿入し、その組合員コードの左3桁を表示するLEFTの文字列関数を入力します。 それによって3桁が表示され、その3桁のコードは、支店コードを意味するので、シート(2)に支店コード、支店名が入力してあるのでそこから参照するようにシート(1)の3桁が表示されている隣に新たに列を挿入し、シート(2)の支店コードから支店名を引き出すようにVLOOKUP関数を入力したら、「N#A」という表示が出て支店名が表示されません。 LEFT関数によって表示された文字列だと「N#A」で支店名が表示されないのですが、自分で3桁の数字を入力すると支店名が表示されます。 3桁の文字列の結果の値だけをコピーしても、「N#A」が表示され、支店名が表示されません。 文字列関数によって表示された結果から、VLOOKUPで参照は出来ないのでしょうか? 1つずつ自分で数字を入力するしかないのでしょうか? 他に何か別の方法でも構いませんので、教えていただけないでしょうか?

  • Excel 2007 vlookupについて

    Excel 2007 vlookupについて 同じシートでA列とB列の2列にある型番で一致するものをC列に表示させたいです。 実際A列の型番は一意の番号です。 B列の型番は同じ番号がございます。 型番1は100行ぐらい。 型番2は300行ぐらい。 C列にどのようなvlookupを記載すればよろしいでしょうか。 ※C2以降に結果が表示されるようにしたいです。

  • エクセルでの出欠・成績管理がしたい。

    エクセルでの出欠・成績管理がしたい。 PCのリテラシが低いので、回答を戴いても操作方法が解からない可能性がありますが、よろしくお願いします。 1.A列に氏名があります。昇順化しました。B列には出席者の学籍番号があります。これも昇順化しました。現在は、B列の出席者の番号を目で見ながら、A列の番号に照会し、出欠マークを付けています。500名の処理なので苦労しています。もっと簡単に済ます方法は無いでしょうか? 2.また、これから成績表を作成する予定です。学籍番号は10桁なので、これを前方5桁あるいは後方5桁だけを入力し、これを例えばC列に置きます。そしてこの5桁の学籍番号の後ろ(例えばD列)に成績を記入します。このC&Dをセットとし、先ほどのB列の学籍番号との一致度を自動的に処理し、B列の後ろにC&Dが並ぶといった処理は出来るものでしょうか?

専門家に質問してみよう