- ベストアンサー
Excelのユーザー定義関数
シート名の一部とセルの値が一致したらLOOKUP関数をかえす関数を作成したいのですが… 例として。。。 シート名:20020301売上表、セルA1:2002/3/1の値があります。 シート名の"01"とA2の日付"1日"が一致したら、セルA2にLookup関数をかえす関数を作成したいのですが。。。 よろしくお願いします
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
疑問点を・・・ >シート名の一部とセルの値が一致したら 例にあるように、日付部分のみを比較? また、シートは1シート?Book内の全てのシート? >LOOKUP関数をかえす関数 どういうこと??? >シート名の"01"とA2の日付"1日"が一致したら、セルA2にLookup関数をかえす A2の日付"1日"はA1の誤り? 不明な点がありますが、想像して書いてみました。 A1に入力した日付の日部分と、そのシート名の日付部分が一致したらLookup関数を使う例です。 これは、B1:B31と日付を照合してC1:C30から抽出しています。 A2に =fnc照合(A1) のようにします。ご参考に。(Excel2000です) Public Function fnc照合(rg As Range) Dim ShtName As String 'シート名 Application.Volatile ShtName = ActiveSheet.Name fnc照合 = "" '日付の日(2桁表示)とシート名の日付部分を比べる If Right("0" & Day(rg), 2) = Mid(ShtName, 7, 2) Then 'ユーザー定義関数内でLookupを使った単なる例です fnc照合 = Application.Lookup(Day(rg), Range("B1:B31"), Range("C1:C31")) End If End Function
お礼
お礼が遅くなってすみません。。忙しくて全然見る暇がなくて。。。 質問してる内容がわかりずらくて本当にごめんなさい。 このエクセルも、急いで作成するように上司に言われたんですが、結局難しいので 上司がVBで作ったんですぅ。始めからそうすれば良かったのに… でも、nishi6さんの作ってくれたユーザー定義関数でやってみます。 また、何かわからない事あったらよろしくお願いします。