返回列表 上一主題 發帖

[發問] 陣列篩選問題(已解決)

[發問] 陣列篩選問題(已解決)

本帖最後由 softsadwind 於 2012-3-16 11:46 編輯

請教各位先進
如業務日報表如下

用公式篩選出不重複的客戶名稱
'=T(INDEX('2011'!B:B,MIN(IF(COUNTIF(B$1:B1,'2011'!$B$2:$B$1536),65536,ROW('2011'!$B$2:$B$1536)))))


再用=OFFSET('2011'!A$1,MATCH(客戶一覽!B2,'2011'!$B:$B,0)-1,0,1,6)
去判別該客戶最後一次聯繫的時間


然後用陣列去判別 n天前 最後一次聯繫
'=IF(最近一次聯繫!$A$2:$A$600<(TODAY()-B1),最近一次聯繫!A2:F600,"")


附件 工作日報表a.rar (11 KB)

因為這樣子做 如果超過2000行之後,只要有一隔資料變更,就會重新計算一次,電腦就一直頓。我只能用儲存值的方式,去減少程式判斷的次數,或者把後面兩個分頁移到另外一各檔案,有需要再打開,才能減少一直判斷的問題。不知道有沒有高手可以指導一下,怎樣用vba來寫。感激不盡。
50 字節以內
不支持自定義 Discuz! 代碼

回復 2# oobird
這是開發用的日報表
間隔N天(一般是30天)再聯繫一次,是為了避免過度密集的丟信,被當成垃圾信。
所以這個篩選是一直持續的
每N天就會出現客戶名稱,方便業務人員去過濾名單和寄出廣告信件。

我想用個例子來看,可能會更清楚

A客戶 8/25聯繫過,因為是開發中..所以不見得會有回應...因此他的最後一次聯繫的日子還是在8/25
到9/25那天,判別N天(N=30) ,A客戶就會在出現一次。 業務根據這個名單,再寄發一次廣告信。這時候,就會把最後一次聯繫的日期改成9/25,手動匯入日報表內。

所以A客戶在日報表會有兩欄
9/25  a客戶
8/25 a客戶

等到10/25,又會被篩選出現一次,再手動更新a客戶的聯繫日期為10/25
日報表就變成
10/25 a客戶 .......
9/25 a客戶.....
8/25 a客戶......

如果不用N 那就是直接用30帶進去,以30天為一個循環。
50 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 softsadwind 於 2011-8-26 13:24 編輯

感謝,不過這程式跑出來是會直接幫你把剛好滿一個月的列出來..
並直接幫你把資料以今天的名義新增上去,並單獨顯示出來。這樣子是方便直接用該頁寄發信件。

不過會發生一個問題,就是遇到六日沒上班,這兩天的資料 就會跳過 讓過..
篩選條件要變成30日之前的都要列出來,把這些計算結果複製到新分頁,
然後再用複製的方式 接續2011頁面的最後一行
2011那一頁就維持原貌。
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 6# GBKEE


    謝謝 我回公司再來測試,測試後再回饋
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 6# GBKEE

感謝版大,這一版就夠用了...
測試起來是ok的...
如不介意 我會把這個範例放在個人臉書上
畢竟問來的 比較容易忘記
得找個地方標記起來:>
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 8# Hsieh

感謝, "謝"大大,我在2003使用此程式碼,出現『沒有物件』,推測應該是2010的語法。所以暫時沒辦法回應這一篇。
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 11# GBKEE

禀告兩位大大....小弟測試如下
用Office 2003主程式開啟
修改名稱
工作表1 :此處需要物件
sheet 1 :型態不符合
sheet1(2011) :物件不支援此屬性或方法

用2010程式開啟
都是出現以下錯誤訊息

系統錯誤&H800700E(-2147024770) 找不到指定的模組
編譯錯誤: With物件的形態必須是使用者自訂型態、Object或Variant之一

所以應該是我安裝的2010有問題...也就是.....(消音)
因為是公司電腦 不容易做任何變更,所以...無限期暫緩...
50 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題