返回列表 上一主題 發帖

[發問] 多條件查詢設定的問題

回復 3# 准提部林 學習准提部林大師的排除法,增加兩個IF判斷日期區間,也可達成,區期日期+多條件判斷,感恩.
杜小平

TOP

回復 11# dou10801


簡單做一個:
1) 只輸入開始日期:取出>=指定日期資料
2) 只輸入結束日期:取出<=指定日期資料
3) 兩種都有:取出>=及<=區間資料, 注意:兩個日期不可倒錯, 即結束日期不可小于開始日期; 若兩個日期相同=只取同一天資料
4) 兩種都空:不比較日期, 視為日期都符合, 僅比對其它條件

Sub TEST()
Dim Arr, D1, D2, X, i&, j%, N&
Sheets(2).UsedRange.ClearContents
D1 = [j2]: D2 = [k2]: X = [L2:N2]
Arr = Range([i1], [a65536].End(xlUp))
For i = 2 To UBound(Arr)
    If IsDate(D1) Then If CDate(Arr(i, 9)) < D1 Then GoTo i01
    If IsDate(D2) Then If CDate(Arr(i, 9)) > D2 Then GoTo i01
    For j = 1 To 3
        If X(1, j) <> "" And X(1, j) <> Arr(i, Mid(135, j, 1)) Then GoTo i01
    Next j
    N = N + 1
    For j = 1 To UBound(Arr, 2): Arr(N + 1, j) = Arr(i, j): Next
i01: Next i
If N > 0 Then Sheets(2).[a1].Resize(N + 1, UBound(Arr, 2)) = Arr
End Sub


'============================

TOP

回復 12# 准提部林 請教准提大大,如果是字串如何下條件,[例]客戶編號從A01-A100,我要找A20-A60的資料,要怎麼判斷,感恩.
杜小平

TOP

回復 12# 准提部林

明&#32454;.rar (8.79 KB)

杜小平

TOP

回復 14# dou10801

A20~A60

T=arr(i, 1):  V=val(mid(T,2))
if left(T, 1) <> "A" or V < 20 or V > 60 then goto i01

TOP

隨意窩 "EXCEL迷"  blog  或https://blog.xuite.net/hcm19522/twblog
已收集8500篇 EXCEL函數

TOP

回復 16# hcm19522 感謝hcm19522大大不用VBA也能達成,好好學習.
杜小平

TOP

        靜思自在 : 【做人的開始】每一天都是故人的開始,每一個時刻都是自己的警惕。
返回列表 上一主題