• ベストアンサー

条件に一致する行のセルに値を入れるには

シート1の「600」の値をシート2の「2006年」と一致するセルの隣に表示させたいのですがどのような関数を使えばよいのでしょうか? 宜しくお願いします。 シート1 ----------------------------------------    A   B  C 1 西暦   値 2 2006年  600 3  ---------------------------------------- シート2 ----------------------------------------    A   B  C 1 西暦   値 2 2005年 3 2006年  600 ← 2006に一致した値 4 2007年 5 2008年 ----------------------------------------

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

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

シート2のB2セルに =IF(ISNA(VLOOKUP(A2,Sheet1!A:B,2,FALSE)),"",VLOOKUP(A2,Sheet1!A:B,2,FALSE)) と入力し、B2セルを下方向にコピー。

gon-gon
質問者

補足

出来ました! chie65536さんありがとうございます。 すみませんが下記のようなことはできないでしょうか? シート2 ----------------------------------------    A   B  C 1 西暦   値 2 2005年 3 2006年  600 ← 2006に一致した値 4 2007年  600   5 2008年  600  「2006年」に一致したものを含みそれ以降にも 同じ「600」の値を入れたいのですが どのようにすればよろしいでしょうか? 宜しくお願いします。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

この質問はあいまい(別の意味にも解釈される)と思う。 シート1のA2に年(数字)を入れて、シート2の年がA列で順並びにあるとき、等しい年の行のB列にシート1のB2の値をセットするとした場合、年を複数回シート1のA2にセットする用途を考えたとき、関数では不可能です。VBAならできる。 関数は値をセットしたい側セル(投げる側ではなく、受ける側のイメージ)で式を入れないといけないからです。 だから受ける側が決まっていない(かつ2,3個のセルでない場合)場合関数では難しく(不可能)なります。 以前にシート1のA2に2005、B2に300をセットして、次にシート1のA2に2006、B2に600と入れると2005の300は消えてしまう。 1 西暦   値 2 2005年  300 3 2006年  600  となってほしいなら不可能ということです。 シート1のA2み1回限りの入力であるなら シート2のB2に =IF(A2=Sheet1!$A$2,Sheet1!$B$2,"") と入れて下方向に式を複写する。 しかしこれを使えるケースは想像しにくい。 質問は、正確に、全体的な質問者の真意を伝えていますか。

gon-gon
質問者

お礼

imogasiさん回答ありがとうございます。 なんとか解決しました。 質問があいまいで大変申し訳ございませんでした。 いろいろ想定して回答していただき誠にありがとうございました。

noname#16474
noname#16474
回答No.2

=IF(ISNA(VLOOKUP(A2,Sheet1!A:B,2)),"",VLOOKUP(A2,Sheet1!A:B,2)) では。 false を取るとtrueを指定したことになり、 検索のときに該当値が無いときに、上位の値をセットしてくれます。

gon-gon
質問者

お礼

出来ました! h20060121さん回答ありがとうございます。 こんなに簡単に出来るとはビックリです。 IF関数を複雑に考えていましたが、この方法で バッチリできました。 本当にありがとうございました。

関連するQ&A

専門家に質問してみよう