- ベストアンサー
Excel 条件に一致したセルの隣のセルを返す
- Excel初心者のため、シート1とシート2のデータを条件に一致した場合、セルの隣の値を取得したいです。ご教示お願いします。
- エクセル初心者ですが、シート1とシート2で一致したコードの隣の値を取得したいです。可能でしょうか?
- シート1とシート2のデータのコードが一致した場合、セルの隣の値を取得したいです。アドバイスをお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No2の計算式 =IF(ISERR(INDEX(INDIRECT($A$2&$A3),RIGHT(B$2),2)),"",INDEX(INDIRECT($A$2&$A3),RIGHT(B$2),2)) は一つのシートに表現するためシート名表示の分だけ行が下がっているので、項目名が1行目にある場合は =IF(ISERR(INDEX(INDIRECT($A$1&$A2),RIGHT(B$1),2)),"",INDEX(INDIRECT($A$1&$A2),RIGHT(B$1),2)) となります。 あと、Sheet2のコードがソート出来ないのであれば配列計算になりますが =IF(ISERR(INDEX(処理名,SMALL(IF(コード=$A2,ROW(コード)-1,""),RIGHT(B$1)))),"",INDEX(処理名,SMALL(IF(コード=$A2,ROW(コード)-1,""),RIGHT(B$1)))) でも表示可能。 範囲名【コード】はSheet2のコード列、【処理名】は同じく処理名列 計算式は配列計算なのでShift+Ctrl+Enterで確定
その他の回答 (3)
- web2525
- ベストアンサー率42% (1219/2850)
- web2525
- ベストアンサー率42% (1219/2850)
提示された条件で目的の動作を行うには関数式のみでの実現は不可能と思います。 仮にSheet2のコードが昇順、処理順でソートされているとしたら =IF(ISERR(INDEX(INDIRECT($A$2&$A3),RIGHT(B$2),2)),"",INDEX(INDIRECT($A$2&$A3),RIGHT(B$2),2)) こんな計算式で可能 添付された図の 赤枠で囲ったセル範囲は[コード2] 青枠で囲ったセル範囲は[コード3] とそれぞれ名前付けされています それ以外にSheet2の A2:B2セル範囲(1 | AAA)は[コード1] A4:B4セル範囲(3 | BBB)は[コード3] と名前付けられています Sheet2のコード、処理順がソートされていない場合には使えない手法ですが参考に
- hallo-2007
- ベストアンサー率41% (888/2115)
例えば シート2 作業列 コード 処理名 1 AAA 2 BBB 3 BBB ・・・と作業列を追加して A列に =B1+COUNTIF(B1:B$1,B1)/10 といれて下までコピィしておけば シート1 コード 0.1 0.2 0.3 1 AAA 2 BBB AAA 3 BBB と処理番号を小数点以下の番号入れて =VLOOKUP($A2+B$1,シート2!$A$1:$C$100,3,FALSE) 右へコピィ、下へコピィ といった具合で、VLOOKUP関数が使えるようになります。 必要であればエラー処理加えるとか、エラーを表示しないとか方法を考えてください。
お礼
早速の回答ありがとうございます。 残念ながらシート2に作業列は追加できないのです。 説明不足ですみません。シート1も同じく追加はできず決められた処理1・2・3のセルのみで関数を使い値を表示しなければなりません。 VLOOKUP関数はとても便利な関数なんですね、初心者の私にはとても勉強になります。ご丁寧な説明ありがとうございます。
お礼
再度ご丁寧な回答いただきありがとうございます。 ソートが可能なので計算式を利用させていただきました。 勉強不足だと痛感しました。これを機に一から勉強しようと思います。