• ベストアンサー

エクセル VLOOKUPの横バージョンはありますか?

2つのシートに分かれている表から計算をしています。 =IF(A13=全体のシミュ!L2,全体のシミュ!L4*合計!B13*合計!C13) こちらの数式を入れていますが、下のセルに数式をコピーすると L2とL4がL3とL5になってしまいます。 これをM2とM4のように横にずらしたいのですが、可能でしょうか? VLOOKUP関数の横バージョンみたいなものがあればできますか?

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

  • ベストアンサー
noname#66264
noname#66264
回答No.4

ごめんなさい。調子に乗りました。 Cupperさんが言っていることの方が正しかったです。 Row関数 指定したセルの行番号を数字で返します。 例:  式     結果 =Row(A1)   1 =Row(B2)   2 =Row(C3)   3 よって    式          結果 =Row(A13)-13+1     1 =Row(A14)-13+1     2 =Row(A15)-13+1     3    …    … のようにフィルを用いてコピーして、基点から何行目なのかを出せます。 Index関数 普通、セルは"C3"など、アルファベットと数字のペアで参照しますが、 行、列を数字で"3,3"のように指定できます。(指定された範囲内で) Index(範囲,行,列) 範囲はA1:C3などアルファベットと数字で指定します。 行、列は数字のみで指定します。 行、列はそれぞれ指定された範囲内での何行目、何列目を数字で示すものです。 例:    式                  結果 =Index($A$1:$C$3,1,1)    A1の値が返される =Index($A$1:$C$3,2,2)    B2の値が返される =Index($A$1:$C$3,3,3)    C3の値が返される 質問者の方の例では、条件が合えば、 Index関数の行を3で固定 指定された範囲から3行目だから、2行下の値を示します。 列をRow(A13)-13+1にします 数式は参照元は何行目かを示しています。 それを参照先の何列目にしたかったというご質問でしたね。 言葉の上でも、何行目を何列目に変えられたということになります。 行と列が指定できます。期待した値を参照できます。

ne-tsu-
質問者

お礼

丁寧にご教授頂きありがとうございました。

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

その他の回答 (3)

noname#66264
noname#66264
回答No.3

A13の値が別シートのL2の値と一致していれば、 2行下の値を参照して計算したい、ということですね。 次は、 A14(参照先が下のセルにずれる)の値が別シートのM2(参照先が右隣に)の値と一致している。 次は、 (参照先が下に)、(参照先が右隣に)… ということでしょうか。 それならば、式を作ってしまったほうが早いです。 あなたはたぶん式を作れるはずです。 __A_|__B__|_C_|__D___|_____E_____|_F_|_| |__どこか__ "=" | if( | A | 13), | シート名! | L | |略| =A1&B1&C1&… ----|-----|---|------|-----------|---|-| |----------- 上記のような表を作ったとしましょう。 変化させたいところだけ、変化させ、変化させたくないものは変化させずにコピーしましょう。 すべての値を&で結合すると式ができます。 これを値に変更してあげるとお望みのことができると思います。 確認です。 1、コピーの仕方で、文字列はA~Zまで変化させられます。 2、コピーの仕方で、数字も1つずつ増やせます。 3、値を変化させずにコピーできます。 4、&を使って、セルの値を結合させてやることができます。 5、[右クリック]→[形式を指定して貼り付け]→[値]をチェック→[OK](もしくは[Alt+E][S][V][Enter])で数式を値に変換できます。 値貼り付けで、数式になったものはすぐに計算が実行されません。 アクティブ化してやらないといけないからです。 その場合、セルを複数選択して、[F2],[Enter]を連続で繰り返してやることですばやく作業が終了します。 わからないことがあったらどうぞお気軽に聞いてください。

ne-tsu-
質問者

お礼

丁寧にご教授頂きありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

質問のタイトルだけでは 「HLOOKUP関数がありますよ」 と回答されそうですね。 >これをM2とM4のように横にずらしたいのですが、可能でしょうか? >VLOOKUP関数の横バージョンみたいなものがあればできますか? ええと、相対参照をよく理解されていないようですね。 縦方向にコピーすると元の数式で参照されているセルは行番号が変わります。 ですので、縦方向にセルをコピーして参照するセルを横(列方向)にずらすことはそのままではできません。 この場合は、ROW関数や COLUMN関数を使って、参照先のセルが縦・横それぞれどれだけ移動したかを割り出し、 OFFSET関数や INDEX関数などで参照元のセルを指定します。  ※各関数の詳細はExcelのヘルプや関数ウィザードから参照してください。

ne-tsu-
質問者

お礼

丁寧にご教授頂きありがとうございました。

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

横バージョンと言うか縦バージョンはHLookupです。

ne-tsu-
質問者

お礼

ありがとうございました。

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

関連するQ&A

  • エクセル VlookUPで違う結果が出てくる

    エクセル2010で何度も使っているVlookUP関数なのでですが、今日は何故か全くうまく行かず、原因が分かりません。 氏名が入った表同士で、Sheet1の氏名の横の列にSheet2の参照範囲からデータを持ってくるだけの作業なのですが、全く違う人(場所)のデータをもっともらしく引っ張ってくるのですが。 横にコピーすると、その違う人の横のセルのデータを持ってきます。 詰まり参照は出来ているのですが、全く違う「氏名」の行のデータを参照しているのですが。 この原因分かる方、是非お願いします。

  • エクセル

    セルを飛ばして数式のコピーができますか? 例えば、A1にIF関数やvlookupを使った式が入ってます。(仮にvlookupの検索値をシート1のA2とします) B1にはまったく関係のない式が入っています。 C1にA1の関数を持ってきたいのですが、その際普通にコピーしてくると検索値がC2になってしまいます。これをB2にすることはできますでしょうか? よろしくお願いいたします。

  • ExcelでVLOOKUPの引数にMID関数を使う?

    ・Sheet1のA1セルの数値をVLOOKUPの検索値にする ・Sheet1のA1セルの数値が6桁あって、左から2・3・4番目の数値を使う ・Sheet2にVLOOKUPの「範囲」になる表がある 以上の条件のとき =VLOOKUP(MID(A1,2,3),Sheet2!$表のセル範囲$,列,型) という数式を作ったのですが、「NAME#」エラーがでました。 正しい数式を教えていただければ助かります。 よろしくお願いします。

  • エクセルの関数VLOOKUPについて教えて下さい。

    エクセルの関数VLOOKUPについて教えて下さい。 範囲にあたるデーター部分が3つのかたまりに分かれている時どのような数式で表すことができますか? 具体的には、HIJ KLM OPQの列位置にある3つの表の中から検索したいのです。 作った数式は1つの表から検索するもので =IF(C9="","",IF(ISNA(VLOOKUP(C9,材料一覧!$H$5:$J$54,2,FALSE)),"未登録",VLOOKUP(C9,材料一覧!$H$5:$J$54,2,FALSE))) です。(C9,材料一覧!$H$5:$J$54,2,FALSE)の後に&(同じ数式で列文字を入れ替えて)で繋げてみました。列範囲KLMの表は上手くいったのですが、3つ目のOPQの表は上手くいきませんでした。 原因と正しい数式を教えて下さい。 よろしくお願いいたします。

  • Excel のVlookup の処理方法について

    Excel での Vlookup 関数の処理法についてお教え下さい。 =IF(A1=””、””、VLOOKUP(A1,X1:Z9,2,FALSE)) で 2 行目の該当セル値がないとき、目的セルは  0 表示されますが。この時、目的セルを無表示にしたいのですが、どの様な数式を組めばよいかお教え下さい。

  • VLOOKUP関数

    VLOOKUP関数を使って、CODEの値に応じて氏名を表示する表を作っています。 式は =VLOOKUP(A2,Sheet2!$A$2:$C$41,2,0) というような感じなのですが、フィルハンドルをドラッグして式をコピーすると、全て同じ人の氏名が表示されてしまいます。 おかしいなと思って、関数が入っているセルをクリックして、[関数の挿入]ボタンを押すと、数式の結果の所には正しい答えが出ていて、[OK]ボタンを押すと正しい氏名に変わります。 どうして最初のフィルハンドルドラッグの時点で正しい表示が出ないのでしょうか?

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

    =IF(ISERROR(VLOOKUP(B2,$E$1:$F$296,2,FALSE)),"",VLOOKUP(B2,$E$1:$F$296,2,FALSE)) という関数を入れて、品番をセルに入力して元表から品名を導く表を作成しました。うまく使えています。 これを元に =IF(ISERROR(VLOOKUP(B2,$F$1:$I$1000,2,FALSE)),"",VLOOKUP(B2,$F$1:$I$1000,2,FALSE)) という関数に直して、同じような表を作ろうとしたのですが、うまくいきません。 何が悪いのか分かりません。 どうすればうまくいきますでしょうか?

  • VLOOKUPの条件設定について

    VLOOKUPの式で他の表から数字を引っ張るようにしていますが、条件に該当しない場合はゼロの表示をしたいのですが数式はどうなるのですか? 現状は該当しない場合ひとつ上のセル数値を引っ張ってきます。 IF関数を付けると聞きましたが・・・ わかりにくい説明ですがよろしくお願いします。

  • エクセルのVLOOKUPについて

    VLOOKUPで別のシートのセルから数字を引っぱってくる設定をしたのですが、その参照するセルが空白だった場合、0が表示されてしまいます。 空白のときは空白にしたいのですが、以下の関数にどう付け加えればいいですか? =VLOOKUP(B2,Sheet1!B4:I52,8,0)

  • エクセル2003 関数 IFとVlookupの組み合わせについて

    エクセル2003 関数 IFとVlookupの組み合わせについて IF関数とvlookuo関数を組み合わせて関数を組もうとしています。 vlookupしたい元データが18万あるのでシートを(1)~(3)に分けています。 やりたいことは、 シート「(1)1~60,000」     A列:ID B列:社名 シート「(2)60,001~120,000」 A列:ID B列:社名 シート「(3)120,001~180,000」 A列:ID B列:社名 シート「集計」 このシートに関数の結果を表示したいです シート「集計」のH9のセルにIDを入れたらI9のセルに社名が自動表示される。且つH9のセルが空欄ならI9のセルも空欄になる。※入るIDはシート(1)~(3)のどこかにあります 関数教えて下さい。よろしくお願いします。