• 締切済み

エクセルの比較式=IF,VLOOKUPに関する質問

エクセルの比較式に関する質問。部品の型式"S"-"7.5"があるとします。その答えを"D"の様にコード表示したい。=IF(F2="","",VLOOKUP(F2,G2:H7,2,FALSE))の式を作り、F2に"S"と"7.5"の合成型式、G列には比較する型式、H列には答えのコード記号を入力しました。 その結果S-7.5ではDの答えで成功。空白-7.5では#N/Aになってしまいます。 合成型式と比較型式を"EXACT"で比較すると"TRUE"が表示されます。 どこかに誤りがあるのでしょうか?

みんなの回答

回答No.1

Vlookupが働く際、同じ「1」という数字が入っていても書式が「文字列」と「数値」では 別物として処理されるので、検索にHitしない現象がおきます。 すべてのセルの書式設定を「文字列」にしてから、特に数値は再入力をしてみてください。

sasakubo
質問者

お礼

さっそくの回答、ありがとうございました。成功しました。 質問をする前に何種類か作って、良い時とダメな時があり不思議に思っていました。 感謝!!

関連するQ&A

  • この式どこが違いますか?

    G列にある品名リストの品名の隣(F列)に「型式マスタ一覧表」というシートの同じ品名(D列)の隣(C列)にあるコードを入れたかったので以下のように式を作りましたが#N/Aとなりました。 =VLOOKUP(G2,型式マスタ一覧表!$A$1:$D$1268,3,FALSE) 使い方がおかしかったんでしょうか?

  • 【エクセル】VLOOKUPが上手くいきません。。。

    VLOOKUP関数がうまくいかないので教えてください。 下のような表になっています。    A     B    C    D    E    F 1  番号  名前               コード 2 11-2345  ABC  11  #N/A  11  あああ 3 22-3456  DEF  22  #N/A  22  いいい  4 33-4567  GHI  33   #N/A  33  ううう 5 44-5678  JKL  44        44  えええ 6 ・・・・ ・・・               55  おおお 7 ・・・・ ・・・               66  かかか A、B列はがもとから打ち込んであるデータです セルC2は =LEFT(A2,2) でA列のハイフンの前を表示しています。 セルD2に =VLOOKUP(C2,$E$2:$F$7,2,FALSE) を入れると#N/Aが表示 されます。ちなみに、セルC2にLEFT関数ではなくて、数字をそのまま、 11と入力すると、セルD2に「あああ」と表示されます。どこがいけない のでしょうか? $E$2:$F$7はC列の二桁の数字に対応するコードの表になっています。 エクセル2003を使っています。

  • 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ではエラーにならず値を参照できています。

  • vba vlookupについて

    VBAで範囲検索をしたくて、 vlookuを使おうと思ったのですが 1000~2000 2001~3000 3001~4000 4001~5000 5001~6000 6001~7000 7001~8000 8001~9000 9001~10000 このような表から 1237 を検索しようとすると失敗してしまいました(・・;) wskyu.Range("D24") = Application.WorksheetFunction.VLookup(kihon, .Range("D:H"), 5, True) このコードでエラーは起きず、 kihonに1237が入っています 1000 2001 ↑がD列です H列は 309 359 406 569 630 680 700 703 904 こんな感じです 思い通りにいけば1237を検索するので当てはまるのは1列目で 309が表示される予定だったのですが 実際やってみると630が表示されました、、、 なぜなのでしょうか そもそもVLOOKUPでこのような検索方法はできないのでしょうか? 補足として 最初はSELECT CASEを使い 1000~2000の間にあれば 309を表示 という風にしていたので 表などが間違っているのではないようです しかしそれだとコードがとても長くなってしまうので VLOOKUPにしようと思いました どうかよろしくお願いします!!

  • エクセルのVLOOKUPの簡単な質問

    エクセルで簡単な郵便簿を作りたいのですが、    A   B      C       D       E               日付    部署コード  部署     1  001  経理部    9/1     001    経理部 2  002  企画部    9/2     008    総務部 こんな表で、A列、B列には最初から決まっている部署コードと 部署名が入っていて、D列にコードを入れると、A列から引っ張って きて、E列に自動的に部署名が表示されるようにしたいのですが VLOOKUPでどんなふうにすればいいでしょうか?

  • Excel IF関数を短くする式を教えて下さい。

    ベストアンサーにさせて頂いた方のやり方で別な問題点が出てきたので再び同じ質問です。 画像のB2セルに入る数式を短くまとめたいのです。。 今のところは下記のような式で上手くいっていますが、長すぎて編集する際困ってます。 =IF(D2="",0,IF(D2<4.5,D2,4.5))+IF(F2="",0,IF(F2<4.5,F2,4.5))… +IF(D3="",0,IF(D3<3.5,D3,3.5))+IF(F3="",0,IF(F3<3.5,F3,3.5))… +IF(D4="",0,IF(D4<4.5,D4,4.5))+IF(F4="",0,IF(F4<4.5,F4,4.5))… +IF(D5="",0,IF(D5<3.5,D5,3.5))+IF(F5="",0,IF(F5<3.5,F5,3.5))… +IF(D6="",0,IF(D6<4.5,D6,4.5))+IF(F6="",0,IF(F6<4.5,F6,4.5))… +IF(D7="",0,IF(D7<3.5,D7,3.5))+IF(F7="",0,IF(F7<3.5,F7,3.5))… D2~7にはC2~7を使った式が入っています。 つまり、D,F,H,J,L,N,P,R,T,V,X列をA列の数値と比較したときに 小さい方を合計として出したいのです。 どなたか分かる方いらっしゃいましたらよろしくお願いいたします。

  • IF、VLOOKUP関数

    (1)A4=IF(F4>0,"M-1"," ") A列にこの式をコピーすると全A列がM-1になるが、 A5は「M-2」、A6は「M-3」・・・ としたい。 (2)C4=VLOOKUP(C4,$C$5:$D$9,2) C4が空白の場合「#N/A」となるが、空欄にしたい。 以上二点、ご教授下さいm(__)m

  • エクセルのデータ比較

    シート1のA行のデータとB行のデータをすべて比較して、同じデータがあれば C列にそのデータを書き出したいのですが、どうすればよろしいのでしょうか。 行数(比較するデータの数)はそれぞれ数千行あります。 例(a~hはデータです) シート1     A列 B列 a c b d  c f d h の場合、比較した結果をC列に次のように表示させます。 A列 B列  C列 a c c b   d d c f d h どなたかよろしくご教示くださるよう、お願いします。

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

    関数に詳しくないので、教えてください。 質問(1) 列は、F×G+Hの合計です。 F  G  H  I 40  1  3  43 F列の数字が、11~100ののときのみ、G列に1を入力させ、I列に合計をだしたいのですが、 G列に、現在、 =IF(F6=””,””,VLOOKUP(F6,$L$4:$M$103,2,FALSE)) と数式が入っています。 ちなみに、L列の4~103には、11~100の数字が入っており、M列の4~103には、すべて1の数字が入ってます) が、数式をいれると、合計に、#VALUE!のエラーメッセージがでてしまします。 F列に文字を入力すると、正しく合計が出ますが、F列が、未入力だと、エラーメッセージが出ているので、未入力でも、エラーメッセージがでないいように、するには、どうしたらよいでしょうか? 質問(2) それと、この数式だと、H列だけに数字を入力するだけでは、合計がでなく、エラーメッセージのままです。 H列だけに入力しても、合計のでる数式も教えてほしいです。

  • VLOOKUPの使い方

    更なる質問なのですが、すでにD列に表示してあるコードを使って、このコードが意味する文字列をVLOOKUPなどを使って、E列に表示させることは可能でしょうか。 A    B    C   D   E 123  大阪  日本  A04  きゅうり 126  台北  台湾  B05  なす 125  東京  日本  A05  とまと と表示させたいのです。 データは、別のシステムで落とし込んできたものです。 すでにあるABCD列のデータに、E列を挿入して表示させる。。としたいのですが、自分でVLOOKUPを使って作ったところ、違ったものが表示されるのです。 例)A04 とまと   B05 キャベツ となってしまいます。 VLOOKUP自体、使えないのでしょうか。 よろしくお願いいたします。

専門家に質問してみよう