• ベストアンサー

Excelのユーザー定義関数

シート名の一部とセルの値が一致したらLOOKUP関数をかえす関数を作成したいのですが… 例として。。。 シート名:20020301売上表、セルA1:2002/3/1の値があります。 シート名の"01"とA2の日付"1日"が一致したら、セルA2にLookup関数をかえす関数を作成したいのですが。。。 よろしくお願いします

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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

rinrin29
質問者

お礼

お礼が遅くなってすみません。。忙しくて全然見る暇がなくて。。。 質問してる内容がわかりずらくて本当にごめんなさい。 このエクセルも、急いで作成するように上司に言われたんですが、結局難しいので 上司がVBで作ったんですぅ。始めからそうすれば良かったのに… でも、nishi6さんの作ってくれたユーザー定義関数でやってみます。 また、何かわからない事あったらよろしくお願いします。

関連するQ&A