• ベストアンサー

エクセルの計算式VLOOKUPを再度教えてください!

再度,質問いたします、わかりましたら、教えてください。 エクセルの計算式でE1のセルに次の計算式があった時に =VLOOKUP(B1,$F$1:$G$10,2,FALSE)この式は、成り立っています。 「この時にもう1つ条件をつけて、A1のセルの値(20種類の値が、ある時)に対して範囲を変えることはできますか。たとえばA1セルが50という値のときは、$F$1:$G$10の範囲ですが、A1セルが130と言う値のときの範囲は$F$11:$G$15、A1が201のときの範囲は$F$16:$G$25を指定のように範囲を変えられますか?FとGに範囲が20種類タテにあります。H1からH10のセルは50という値、H11からH15のセルは130という値,H16からH25のセルは201と言う値があります。AからE列は1から1000のセルがあってE列は計算式をコピーします。」わかりましたら、計算式を書いてお教えください。

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

  • ベストアンサー
  • Yosha
  • ベストアンサー率59% (172/287)
回答No.3

E1セルに次式を入れ、下方にドラッグしてください。 =VLOOKUP(B1,INDIRECT("F"&MATCH(A1,$H$1:$H$25,1)-COUNTIF($H$1:$H$25,A1)+1&":"&"G"&MATCH(A1,$H$1:$H$25,1)),2) この式が成立するためには、以下の条件が必要です。 1. H列に入っている数値の各グループは、例に出されているように、それぞれ1塊りであり、昇順になっていること。 2. C列、D列にはどんなデータが入っているか説明がないため、無視しています。 式を見てお分かりとは思いますが、一応説明しておきます。 MATCH(A1,$H$1:$H$25,1) : 昇順に並んでいる数値のうち、A1セルの条件に合った値の入っているセルの最大の行番を返します。 COUNTIF($H$1:$H$25,A1) : A1セルの条件に合致したセルの合計です。 MATCH関数は、検索値が昇順に並んでいるとき、最後の引数(照合の型)を“-1”に設定した場合、中間のデータ領域ではエラーとなりますので、この関数を使って各データの始まりの行を算出しています。  INDIRECT("F"&MATCH(A1,$H$1:$H$25,1)-COUNTIF($H$1:$H$25,A1)+1&":"&"G"&MATCH(A1,$H$1:$H$25,1)) : ()内は文字列なのでこのままではうまくいきません。INDIRECT関数を使って、セル参照形式の文字列をセル参照する式に変換しています。 VLOOKUP(… : 説明省略 いろいろデータを入れチェックはしてあります。(exel2007) たぶんOKだと思います。試してみてください。

hanakasuka
質問者

お礼

たいへん遅くなりましたが、ありがとうございました、お蔭様で無事計算式が完成いたしました。

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

その他の回答 (2)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

>A1の値は20種類あるのですが それなら、DGET という関数があります 事前にちょっと準備が必要ですが、DGET の方が簡単だと思います F列、G列、H列にはそれぞれ名前が付いていると思いますが、 各列の1列目にその名前を入れます 仮に「F]、「G]、「H」とします A1="H" B1="F" と入れます(検索条件を示す) A2 に50 とか 130 を入れ、B2 に当初 B1 に入れていた値を入れます あとは E1=DGET(F1:H1000,"B",A1:B2) で、どうでしょうか ただし、検索条件に合うデーターが複数あるとエラーになります

全文を見る
すると、全ての回答が全文表示されます。
  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

A1の値は50,130,201の3種類だけでしょうか それなら =IF(A1=50,VLOOKUP(B1,$F$1:$G$10,2,FALSE),IF(A1=130,VLOOKUP(B1,$F$11:$G$15,2,FALSE),IF(A1=201,VLOOKUP(B1,$F$16:$G$25,2,FALSE),""))) で、出来ると思います もし、A1の値が3種以外に増えたり減ったりするのでしたら、式を根本的に見直した方が良いです あと、E列とH列はこの式とどういう関係があるのでしょうか?

hanakasuka
質問者

お礼

解答ありがとうございました、しかしA1の値は20種類あるのですが、 IFを繰り返さなくてもよい式はできますか、E列とH列の関係はありませんが、HセルにはAセルに入る20種類の値をヨコにしたのですが、これを利用してできませんか?また、Gセルの最後の範囲はG200とします。

hanakasuka
質問者

補足

解答ありがとうございました、しかしA1の値は20種類あるのですが、 IFを繰り返さなくてもよい式はできますか、E列とH列の関係はありませんが、HセルにはAセルに入る20種類の値をヨコにしたのですが、これを利用してできませんか?また、Gセルの最後の範囲はG200とします。

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

関連するQ&A

  • エクセルの計算式を教えてください!

    誠に申し訳ありませんが、わかりましたら、教えてください。 エクセルの計算式でE1のセルに次の計算式があった時に =VLOOKUP(B1,$F$1:$G$10,2,FALSE)この式は、成り立っています。 「この時にもう1つ条件をつけて、A1のセルの値が1から20までの値に対して範囲を変えることはできますか。たとえばA1セルが1のときは、$F$1:$G$10ですが、A1セルが2のときの範囲は$F$11:$G$20、A1が3のときの範囲は$F$21:$G$30のように範囲はFとGと規則正しくタテ列に20種類あります、また、E列は1から1000のセルがあって計算式をコピー します。」わかりましたら、計算式を書いてお教えください。

  • 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

    下記のような表があり、"=VLOOKUP(H1,A1:B6,2,1)"のような結果を得たいと思っています ## H1セルには検索したい値を入れるようになっています。 しかしWeb上で調べたところ、VLOOKUP関数は値や文字列には使えるが数式には使えないようです。 そこで数式でもVLOOKUP関数と同じような結果を得られる方法がありましたら教えて頂けないでしょうか。 よろしくお願い致します。 | A | B | --------------------- 1|$E$3*H7*I7 | 1 | 2|$E$3*H7*I8 |0.9| 3|$E$3*H7*I9 |0.8| 4|$E$3*H7*I10|0.7| 5|$E$3*H7*I11|0.6| 6$E$3*H7*I120.5

  • 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関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • VLOOKUPで数式から値を返したい

    こういった書き方でよいか分からないのですが・・・・ VLOOKUP関数で、あるセルを基準にしてそこへ書かれた値をある範囲から見つけ、そこから数えて3列目の値を返す、という作業をさせたのですが、その3列目のセルの中身が「G5/5」などの関数で、#REFのエラーが出てしまいます。ここへ「G5/5」で計算した値(G5=14のときは2.8など)を返す方法はないでしょうか? よく分からない質問で申し訳ありませんがよろしくお願いいたします。

  • エクセルVBAの入力について

    "Sheet1"のA1、C1、F1、G1の値(計算結果のみ)すべてコピーして、 貼り付ける場所が"Sheet2"のA1:Z10の範囲内で、 A1はB列、C1はG列、F1はH列、G1はZ列の空白セルに上詰めで貼り付ける。 なおF、G、H、Z列以外の列には値が入力されていたり空白もあります。 また同時に、 "Sheet1"のA1、C1、F1、G1の値(計算結果のみ)の内でA1とF1のみコピーして、 貼り付ける場所が"Sheet3"のC1:Y10の範囲とC13:Y23範囲内で、 A1はC列、F1はY列の空白セルに上詰めで貼り付ける。 なおC、Y列以外の列には値が入力されていたり空白もあります。 またC11:Y12の範囲内にはすべて値が入力されています。 よろしくお願いします。

  • Excelとピタゴラスの定理

    この表のA列には直角三角形の垂辺、C列には 同じく底辺、F列には斜辺の長さが書き込まれる。今、A2セルに3.00、C2セルに4.00、F2セ ルに5.00 の値を入れたので、垂辺・底辺それぞれの2乗の和であるE2セルの値と斜辺の2乗であ るG2セルの値は一致するはずである。それが一致しているかどうかを確かめる式がH2セルに入 れられている。H2セルをアクティブにして数式バーを見るとわかるように、このセルに入ってい る式は=E2=G2 というものである。すなわち、E2セルの値とG2セルの値が等しければ 論理値True を返し、そうでなければ同じくFalse を返す式である。この場合、当然True が返される。 次に、A3セルには式「=A2+ 0.03」を、C3セルには「=C2+ 0.04」を、F3セルには「= F2+ 0.05」を入れ、第3行目のその他のセル(B3,D3,E3,G3,H3)には第2行目の 同じ列のセルにある式を複写する。そうすると、ここでも垂辺:底辺:斜辺の長さの比は3:4: 5になっているからH3セルにはTrue が返されるはずである。 この第3行目のA列からH列まですべてのセルの式をそのまま下方に複写すれば、どの行でもA 列:C列:F列の値の比は3:4:5になるから、H列の値はすべてTrue になるはずである。実際、 どこまで複写しても同じ行のE列のセルとG列のセルに示された値は等しいように見える。しかし、 H列ではTrue ではなくFalse が返される場合がある。 1-A:垂辺 B:垂辺の二乗 C:底辺 D:底辺の二乗 E:二乗の和 F:斜辺 G:斜辺の二乗 H:E=G 2-A:3.00 B:9.00 C:4.00 D:16.00 E:25.00 F:5.00 G:25.00 H:TRUE 3-A:3.03 B:9.18 C:4.04 D:16.32 E:25.50 F:5.05 G:25.50 H:TRUE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24-A:3.66 B:13.40 C:4.88 D:23.81 E:37.21 F:6.10 G:37.21 H:TRUE 25-A:3.69 B:13.62 C:4.92 D:24.21 E:37.82 F:6.15 G:37.82 H:FALSE 26-A:3.72 B:13.84 C:4.96 D:24.60 E:38.44 F:6.20 G:38.44 H:FALSE この現象がどうして起きるのかを、高校生にわかるように、簡単に説明しなさい。 という問題なのです。教えてください。お願いします

  • vlookup関数について

    vlookup関数について教えてください。    A       B         C      D      E        1  あじ    りんご     2  さば    みかん            3  さんま   ばなな        という内容で、D1セルに入力した内容に応じてE1セルに内容を転記させていました。 E1=VLOOKUP(D1$A$1$B3,2,FALSE) 上記で運用していたときはうまくいったのですが、 Cの列にも文字をいれ、E1セルにはCの内容を検索して、B列の内容を転記したいと 思って作りかえるとうまくいきません。 今回の新しいやり方では、 ・A列からの検索はいらない(でも他ファイルから参照されているので、削除、移動はできない) ・E1=VLOOKUP(D1$A$1$C2,2,FALSE)では #N/A となる ・A列からの検索がいらないから、E1=VLOOKUP(D1$B1$C2,1,FALSE) でも #N/A 調べてみたのですがわからなくて・・・ どこがおかしいのか、教えてください。宜しくお願いします。

  • 【エクセル】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を使っています。

  • VLOOKUP関数について

    BとC列に抽出表があり検索範囲データがEとF、HとI列の2グループに分かれています。 VLOOKUP関数を使って検索範囲が2つのグループに分かれている場合の計算式を教えてください。 VLOOKUP関数以外でも出来る方法があれば教えてください。

このQ&Aのポイント
  • DCP-J572Nを使っているが、プリンタがオフラインの状態で印刷ができなくなってしまった。PCのコントロールパネルで確認したがオフラインに設定されていない。ドライバをアップロードしても問題は解決しなかった。プリンタとPCは同じWi-Fiに繋がっているが、再起動しても改善しない。iOSでも同様の状況でプリンタが検出できない。ブラザー製品のQ&Aを参考に設定を確認したが、次にどうすれば良いか分からない。
  • DCP-J572Nのプリンタがオフラインな状態で印刷ができなくなった。コントロールパネルで確認したがオフラインに設定されていない。ドライバのアップロードも試したが問題は解決しなかった。プリンタとPCは同じWi-Fiに接続されており、再起動も試したが改善されない。同様の状況がiOSでも発生しており、プリンタが検出されない。ブラザー製品のQ&Aを参考に設定を確認したが、次の手順がわからない。
  • DCP-J572Nを使用しているが、プリンタがオフラインの状態で印刷ができなくなった。PCのコントロールパネルで設定を確認したがオフラインになっていない。ドライバをアップロードしても問題は解決しない。プリンタとPCは同じWi-Fiに接続されているが、再起動しても改善しない。iOSでも同様の状況が発生しており、プリンタが検出されない。ブラザー製品のQ&Aを参考に設定を確認したが、次にどうすればいいか分からない。
回答を見る

専門家に質問してみよう