Excel の 3 つの列にデータを保存しています
列 A: シリアル番号 列 B: 日付 列 C: 値 (例: コスト)
特定のシリアル番号 (列 A) と日付 (列 B) に関連付けられた値 (列 C) を探す必要があります。
たとえば、下のスクリーンショットで、シリアル番号 (T455) と日付 (2010 年 12 月 13 日) に関連付けられた値を探したい場合、値は 8 である必要があります。
私が思いつく唯一の方法は、値を探すたびにすべてのセルを調べることになるため、計算効率が悪いでしょう。
たとえば、特定のシリアル番号の検索領域を制限する方法はありますか?
たとえば、シリアル番号 T455 の値を探している場合、テーブル全体を検索するのではなく、行 (6 ~ 13) の日付を検索し、列 C で対応する値を見つけるようにコードを制限するにはどうすればよいでしょうか?
Sub FindValue()
Dim S as String
Dim D as Date
Dim V as Integer
S = T455
D = Dec 13, 2010
for i = 1 to Range("A1").End(xldown).Row
If Range("A" & i) = S And Range("B" & i) < Date - 7 And Range("B" & i) < Date + 7 Then
' This way i search a date range rather than a specific date
V = Range("C" & i).Value
End If
End Sub
While ループ、または Lookup 関数を考えましたが、行き止まりになりました。