• ベストアンサー

vlookup関数とHlookup関数の組み合わせ

Excelの関数で、HLOOKUPやVLOOKUPがありますが、この 2つの関数を合わせた様な感じで、列の値と行の値の 2条件がマッチした値を別シートに作成した集計表から 取得させたいですがどの様にすればよいでしょうか。 質問が分かりにくいですがどうぞよろしくお願い致します。

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

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

No.1です! 返答が遅くなってごめんなさい 計算結果がエラーの場合は「0」としたいわけですね? 数式がちゃんとあっているかどうか判りませんが =IF($A2="","",IF(ISERROR(INDEX($M$2:$U$5,MATCH($A2,$J$2:$J$5,0),MATCH(D$1,$M$1:$U$1,0))),0,INDEX($M$2:$U$5,MATCH($A2,$J$2:$J$5,0),MATCH(D$1,$M$1:$U$1,0)))) としてみてください。 結局前回の数式の結果がエラーの場合「0」を返す! という数式をIF関数をもう一つネストして ISERROR(・・・) と数式のIF関数の「真の場合」の式をはめ込んで、繰り返しているだけです。 以上、お役にたてば幸いです。m(__)m

tk_hero
質問者

お礼

上手くいきました。 ありがとうございます。

その他の回答 (2)

  • 135ok
  • ベストアンサー率34% (26/75)
回答No.2

OFFSET関数で作成しました。 D2 =IF(A2="","",OFFSET($J$2,MATCH($A2,$J$3:$J$6,0),MATCH(D$1,$K$2:$M$2,0)))    D10へは、D2をコピー A列、J列の値の変更と、D1、M2の表示の統合が必要かと。

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/vlookup.htm
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! たぶん・・・ INDEX関数とMATCH関数の組み合わせで対応できると思いますが、 画像が小さいので文字がはっきり読み取れません。 こちらで勝手に↓のように表を作ってみました。 細かい部分は別として、INDEXとMATCH関数の使い方が理解いただければ良いのではないかと思います。 尚、各月の売上金額を表示させたいと言うことだと思いますが、 シリアル値で完全一致しないとエラーになりますので 左側の表の4・5・6・・・の月部分は2009/4/1 のように各月の1日として表示形式を ユーザー定義から m にしています。 そして、参照する表の各月部分も全てその月の1日にして、 表示形式を yyyy/m とします。 D2セルに =IF($A2="","",INDEX($M$2:$U$5,MATCH($A2,$J$2:$J$5,0),MATCH(D$1,$M$1:$U$1,0))) という数式を入れ、オートフィルで列方向と行方向にコピーすると 画像のような感じになります。 尚、MATCH関数を使用するに当たって、参照相手に同じ物があると上位の行(列)だけを参照してしまいますので、 もし利益等も表示させたいのであれば 「出力値」を別のものにする必要があります。 以上、参考になれば幸いですが、 的外れなら読み流してくださいね。m(__)m

tk_hero
質問者

補足

tom04さん、ご返答ありがとうございます。 結果が#N/Aとなる場合、該当のセルは0(ゼロ)となる様にしたいのですがどの様にすればよいのでしょうか?

関連するQ&A

  • HLOOKUPでもVLOOKUPでもなくて、それに似た関数はありますか

    HLOOKUPでもVLOOKUPでもなくて、それに似た関数はありますか? やりたいことは、 同じファイルにシート1とシート2があり、 シート1には a列 b列 c列 d列 1 ミッキー サッカー チョコレート 2 ミニー  野球   クッキー 3 ドナルド テニス  ビスケット 4 デイジー 水泳   ポテトチップス ・ ・ ・ という、10,000行ほどのエクセル表があり、 シート2には、 野球 水泳 ・ ・ などという風に、シート1のc列の文字列が全部ではなく、複数ある1列のみのエクセル表があります。 そして、このシート2のセルをそれぞれシート1で検索して、それを含む一行全部を表示した エクセル表を新たにシート3に作成したいのですが、関数かVBAかで可能でしょうか? 例えば、この場合、シート3には a列 b列 c列 d列 2 ミニー  野球   クッキー 4 デイジー 水泳   ポテトチップス ・ ・ ・ というように表示したいのです。 HLOOKUPやVLOOKUPは検索される文字列は端っこしかダメなんですよね? 教えて下さい!!

  • Excel2010でのHLOOKUP関数

    Excel2010で列(縦方向)に1組のデータ(200個程度)を入れ、現在140組のデータが入っています。別シートに票を作成し、票内の各セルにHLOOKUP関数を入れ、この140列×200行のデータベースから、指定した列(検索値)のそれぞれの行からデータを抽出し表示するようにしています。 これまでは、検索値を入力すると、該当する列内の値を票内に反映していてくれていたのですが、この度新たな列を増やしたところ、その列の値を表示してくれません。関数内のデータの範囲はその列以上に広く指定しています。わかりにくい説明で申し訳ないのですが、考えられる原因はありますか。よろしくお願いします。

  • HLOOKUP関数

    HLOOKUP関数?だけでは無いことなのかも知れませんが、HLOOKUP関数にて処理したい物があるので今回はHLOOKUP関数というタイトルで質問しているのですが? HLOOKUP(検索条件,デ-タ-表の範囲,行目,検索方法)の所の検索条件の該当セルは、他の関数で求めた結果の数値では、HLOOKUP関数に使用することは出来ないのでしょうか? そういう事もありえるので、貼り付ける時に形式を選択し、値にて貼り付け同様作業しているのですが?上手くいきません。 例えば、ある関数にて求めた数値が12だったとすると、このセルでは出来ない、このセルをコピ-後値で貼り付けても不可! しかし、他のセルに12と直接手動にて入れたセルを利用すると上手くいきます? どの様な間違いがあるのでしょうか?それとも不可能な事なのでしょうか?(因みに検索条件の当該セルの左上に緑マ-ク付いています) どなたかアドバイスお願いいたします。

  • エクセル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)のどこかにあります 関数教えて下さい。よろしくお願いします。

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

  • HLOOKUP関数のコピーについて

    初歩的な質問ですが、教えて下さい。 別シート上に存在するデータを、行ごとに一つのシートに反映したいと考えています。 関数の書式=HLOOKUP(F2,納品数!B$6:AO$300,2,0) などと定義して使用する場合、上記関数を同列下方に、オートフィルにてコピーしたいのです。 そのさい   1列目 関数  =HLOOKUP(F2,納品数!B$6:AO$300,2,0) 2列目 関数  =HLOOKUP(F2,納品数!B$6:AO$300,3,0) のように、「AO$300,2,0 の 2 を 3 へと加算してコピーしたいのですが普通に下方コピーすると 1列目 関数  =HLOOKUP(F2,納品数!B$6:AO$300,2,0) 2列目 関数  =HLOOKUP(F2,納品数!B$6:AO$300,2,0) となってしまい「AO$300,2,0」が「AO$300,2,0」のまま変化せず同じ値しか反映できません。 「AO$300,2,0」を「AO$300,3,0」に加算コピーする方法を教えて頂けないでしょうか。 分かりずらい説明で恐縮です。 宜しくお願い致します。

  • エクセルでIF文とHLOOKUP関数の合わせ技で。。。

    エクセルで関数について質問です。 HLOOKUP関数で検索した先が空欄なら空欄、値があるならHLOOKUP関数で検索した値が入るようにしたいのです。 たとえば、私が作成した関数は =IF(HLOOKUP($A$1,Sheet1!$A$1:$D$10,2,0)="","",HLOOKUP($A$1,Sheet1!$A$1:$D$10,2,0)) この場合、同じ内容のHLOOKUP関数を2度入力しなくてはなりません。 そうではなく、もっとスマートに出来る方法がありましたら教えていただきたいのです。

  • Excel HLOOKUPで一致したセルの列番号

    Excelの関数で、HLOOKUPの関数を使うと セルの値が出てきますが、値ではなくセル番地(列番号)を表示する方法はないでしょうか。 以下のようにシート(SHEET1)を作成しました。  |A  | B | C | D | E | ――――――――――――――――――――― 1|日付 | Bさん   | Aさん   | ――――――――――――――――――――― 2|4/1|   |   |早退 |1.0| 3|4/2|遅刻|1.0|   |   | 4|4/3|   |   |遅刻 |0.5| 他のシートに”Aさん”のそれぞれの集計を 出すように関数(SUMIF)を作成したのですが、 どうしても列番号が必要? 関数またはVBAでなにかよい方法はないでしょうか。

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

    エクセル2007を使用し、VLOOKUP関数で別のシートから反映させています。データとなるシートの行を途中で挿入して反映させようとすると「0」といった数字が返されてしまいます。 データとなるシートは行を挿入して利用することはできないのでしょうか?このようなときはどういった対処方法がありますか?? 他の行(元からあるシートの)の値はきちんと返されます。

  • どんな関数がありますか?

    エクセルの関数で条件にあった値を合計するSUMIFというのがありますが、 2つの条件を満たす値を合計するにはどうしたらいいのですか? 例えば、A列に複数の洋服のブランド名と、B列にアイテム、C列に金額を それぞれ重複して入力している表を元に、ブランド別にそれぞれのアイテムの合計金額を集計したいのです。 集計する表は、列の項目がブランド名、行がアイテムとなっています。 どうかよろしくお願いします。

専門家に質問してみよう