• ベストアンサー

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

シート1    A    B    C 1 コード  品番  店番 2 日本   韓国  中国 シート2    A    B    C 1 品番  店番  コード 2 韓国  中国  ※1  上記の様に設定していた場合、 シート2のC2セル(※1)に日本と表示するにはどの様な 関数を設定すれば宜しいのでしょうか? vlookupでは左側の検索が出来ないので、 方法が御座いましたら、教えて下さい。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No2です。 単にシート1のデータでシート2では項目の並びがシート1とは違っているのでそれに対応した並びにしたいとのことで、その際にシート1と同じ行で項目を一致させるような表示したいということであればシート2のC2セルには次のような式にします。 =INDEX(Sheet1!$A:$C,ROW(),MATCH(C$1,Sheet1!$A$1:$C$1,0)) INDEX関数ではシート1のA列からC列を対象として考え、ROW()となっているのはシート2と同じシート1の行番号を意味します。MATCH関数によってシート2の1行目にある項目名がシート1では何列目にあるかを求めています。 VLOOKUPでは左側の検索はできないので通常はこのようにINDEX関数を使います。 上記の式は項目が一致するデータを並べる式となっていますのでシート2のA2セルに入力してC2セルにドラッグコピーすることでもよいですね。

yama1125
質問者

お礼

ご連絡が遅くなり、すいません。 解決出来ました! ありがとうございます!

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

C2セルの式というよりも項目の並びを変えたということでしょうか? その場合でしたらシート2のA2セルには次の式を入力してC2セルまでドラッグコピーしたのちに下方にもドラッグコピーすればよいでしょう。 =IF(INDEX(Sheet1!$A:$c,ROW(A2),IF(COLUMN(A1)=1,2,IF(COLUMN(A1)=2,3,1)))=0,"",INDEX(Sheet1!$A:$c,ROW(A2),IF(COLUMN(A1)=1,2,IF(COLUMN(A1)=2,3,1))))

yama1125
質問者

補足

説明不足で申し訳御座いません。 例えば、C1セルに【コード】と文字が入っていた場合、 シート1のA1セルを参照し、A1セルに【コード】と文字があった場合、 A2を抽出する方法です。 vlookupでは右列しか参照出来ず、抽出出来ないので、 左列を参照して抽出したいと思っています。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

品番が韓国で、店番が中国の場合に、コードを日本にするのでしょうか。 確かにvlookup関数では左側の検索が出来ないので、単純にD列にA列をコピーして、vlookup関数を使ってはいかがでしょう。