- ベストアンサー
条件に一致する行のセルに値を入れるには
シート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年 ----------------------------------------
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
シート2のB2セルに =IF(ISNA(VLOOKUP(A2,Sheet1!A:B,2,FALSE)),"",VLOOKUP(A2,Sheet1!A:B,2,FALSE)) と入力し、B2セルを下方向にコピー。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
この質問はあいまい(別の意味にも解釈される)と思う。 シート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,"") と入れて下方向に式を複写する。 しかしこれを使えるケースは想像しにくい。 質問は、正確に、全体的な質問者の真意を伝えていますか。
お礼
imogasiさん回答ありがとうございます。 なんとか解決しました。 質問があいまいで大変申し訳ございませんでした。 いろいろ想定して回答していただき誠にありがとうございました。
=IF(ISNA(VLOOKUP(A2,Sheet1!A:B,2)),"",VLOOKUP(A2,Sheet1!A:B,2)) では。 false を取るとtrueを指定したことになり、 検索のときに該当値が無いときに、上位の値をセットしてくれます。
お礼
出来ました! h20060121さん回答ありがとうございます。 こんなに簡単に出来るとはビックリです。 IF関数を複雑に考えていましたが、この方法で バッチリできました。 本当にありがとうございました。
補足
出来ました! chie65536さんありがとうございます。 すみませんが下記のようなことはできないでしょうか? シート2 ---------------------------------------- A B C 1 西暦 値 2 2005年 3 2006年 600 ← 2006に一致した値 4 2007年 600 5 2008年 600 「2006年」に一致したものを含みそれ以降にも 同じ「600」の値を入れたいのですが どのようにすればよろしいでしょうか? 宜しくお願いします。