- ベストアンサー
マクロ 文字で条件に合うもの
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
マクロを使った関数でよければ 添付画像を例に、こんなコードはいかがでしょうか。 Option Explicit Function GetMyCode(MyRg1 As Range, MyRg2 As Range) As Variant Dim RowCounter As Long GetMyCode = "" For RowCounter = 1 To MyRg1.Rows.Count If ((MyRg1(RowCounter, 1).Value = MyRg2(1, 1).Value) And _ (MyRg1(RowCounter, 2).Value = MyRg2(1, 2).Value) And _ (MyRg1(RowCounter, 3).Value = MyRg2(1, 3).Value)) Then GetMyCode = MyRg1(RowCounter, 4).Value Exit Function End If Next RowCounter End Function なお、条件に位置する行があっても、 先頭行から下方向に見つけ 最初に見つかった行を対象にしています。 また、見つからなかったら空欄になります。
その他の回答 (2)
- HohoPapa
- ベストアンサー率65% (455/693)
>なお、条件に位置する行があっても、 > 先頭行から下方向に見つけ >最初に見つかった行を対象にしています。 >また、見つからなかったら空欄になります。 誤字を訂正 なお、条件に一致する行が複数あっても、 先頭行から下方向に見つけ 最初に見つかった行を対象にしています。 また、見つからなかったら空欄になります。
- quindecillion
- ベストアンサー率48% (87/180)
Excelのバージョンで使える関数などが違いますが、この形は大丈夫だと思います。 if(and)で分岐でしょうか。 B11に =IF(AND(B8=A4,B9=B4,B10=C4),D4,"") と入力すると4が表示されます。 B8=A4であり、B9=B4であり、B10=C4である場合にD4を表示し、どれか違っていたら空白 という事になります。 ご参考になれば幸いです。
お礼
ありがとうございます。 目的のことが果たせました。
お礼
ありがとうございます。 頂いたコードで目的のことが果たせました。 勉強になります。