• ベストアンサー

マクロ 文字で条件に合うもの

添付画像のようにセルに文字が入っている際 セルB8にBBBB セルB9に567 セルB10にううう と入力されていたらD列の4を セルB11に表示させる方法を教えてください。 マクロかもしくは関数でしょうか?

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

マクロを使った関数でよければ 添付画像を例に、こんなコードはいかがでしょうか。 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 なお、条件に位置する行があっても、 先頭行から下方向に見つけ 最初に見つかった行を対象にしています。 また、見つからなかったら空欄になります。

yyrd0421
質問者

お礼

ありがとうございます。 頂いたコードで目的のことが果たせました。 勉強になります。

その他の回答 (2)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

>なお、条件に位置する行があっても、 > 先頭行から下方向に見つけ >最初に見つかった行を対象にしています。 >また、見つからなかったら空欄になります。 誤字を訂正 なお、条件に一致する行が複数あっても、 先頭行から下方向に見つけ 最初に見つかった行を対象にしています。 また、見つからなかったら空欄になります。

回答No.1

Excelのバージョンで使える関数などが違いますが、この形は大丈夫だと思います。 if(and)で分岐でしょうか。 B11に =IF(AND(B8=A4,B9=B4,B10=C4),D4,"") と入力すると4が表示されます。 B8=A4であり、B9=B4であり、B10=C4である場合にD4を表示し、どれか違っていたら空白 という事になります。 ご参考になれば幸いです。

yyrd0421
質問者

お礼

ありがとうございます。 目的のことが果たせました。

関連するQ&A