• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vlookupの応用編を教えてください)

vlookupの応用編:sheet2のB列にA棟・C棟・E棟を表示させる方法

このQ&Aのポイント
  • vlookupを使用してsheet2のB列にA棟・C棟・E棟を表示させる方法について教えてください。
  • 現在、「=VLOOKUP($A$1,Sheet1!A1:B6,2,FALSE)」という式を使用していますが、結果が思うように出ません。
  • sheet2のA1セルと同じ文字列をsheet1から探しだし、その2列目の文字列を表示させるためにはどうすれば良いですか?

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

以下の数式のほうが、セル番地に関係なくB列の対象文字列を表示できるので紛れが少ないかもしれません(そのまま入力でOK)。 =INDEX(B列全体,SMALL(INDEX((A列のデータ範囲<>$A$1)*1000+ROW(データ範囲の行),),ROW(A1)))&"" 例示のレイアウトに当てはめると以下の式になります。 =INDEX(Sheet1!B:B,SMALL(INDEX((Sheet1!$A$1:$A$100<>$A$1)*1000+ROW($1:$100),),ROW(A1)))&""

ahorizumu
質問者

お礼

ありがとうございました。 狙い通りのものになりました。 数式、、難しいです。。

その他の回答 (2)

  • MAMORUM
  • ベストアンサー率19% (4/21)
回答No.2

元の表をソートして並び変えでは、だめなんですか。 ソート後であれば、希望の表示になると思いますが、今の表のままだと隙間があきます。 VLOOKUP($A$1,Sheet1!A1:$B$6,2,FALSE) IF(Sheet2!$A$1=Sheet1!A3,VLOOKUP($A$1,Sheet1!A3:$B$6,2,FALSE),"") IF(Sheet2!$A$1=Sheet1!A4,VLOOKUP($A$1,Sheet1!A4:$B$6,2,FALSE),"") IF(Sheet2!$A$1=Sheet1!A5,VLOOKUP($A$1,Sheet1!A5:$B$6,2,FALSE),"") IF(Sheet2!$A$1=Sheet1!A6,VLOOKUP($A$1,Sheet1!A6:$B$6,2,FALSE),"") IF(Sheet2!$A$1=Sheet1!A7,VLOOKUP($A$1,Sheet1!A$6:$B7,2,FALSE),"") 一段ごとに適用の表を上から減らしていっています。) 参考までに

ahorizumu
質問者

お礼

ありがとうございました。 この方法は試していたのですが範囲を固定してどうにかならないかなと思ってました。ただ教えて頂いたものでも結果は同じ(狙い通り)ですので方法としては間違っていなかったことがわかり助かりました。

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

こんにちは! VLOOKUP関数のFALSE型は完全一致したものを返しますので、 最初にヒットした物だけが表示されてしまいますね! そこで一例です。 お示しの配置通りとして・・・ Sheet2のB1セルに =IF(COUNTIF(Sheet1!$A$1:$A$100,$A$1)<ROW(A1),"",INDEX(Sheet1!$B$1:$B$100,SMALL(IF(Sheet1!$A$1:$A$100=$A$1,ROW($A$1:$A$100)),ROW(A1)))) これは配列数式になってしまいますので、Shift+Ctrlキー+Enterキーで確定します。 この画面からコピー&ペーストする場合はB1セルに貼り付け後 数式バー内で一度クリック!編集可能になりますので、 Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これをオートフィルで下へコピーしてみてください。 参考になりますかね?m(__)m

ahorizumu
質問者

お礼

ありがとうございました。 何回か試しましたが空白になってしまいます。 恐らくわたくしの入力に誤りがあると思いますが(間違いなく!)。。。 なんとかがんばって参考にさせていただきます。 ありがとうございました。

関連するQ&A