0
對於一個給定的當前客戶,我試圖找出他們有多少連續的幾年他們已經與我們續簽了一項政策。我對如何做到這一點的想法是將當前行中的字段與前一行進行匹配。我試圖爲此寫一個函數,但如果有更簡單的方法,請讓我知道。以下是我對功能連續行的有條件計數
Option Compare Database
'Renewal Count Returns count of consecutive renewals
Public Function RenewCount(strLocationID As Integer, _
strQuoteID As Integer, _
strOriginalQuoteID As Variant) As String
Static strLastLocationID As Integer
Static strLastQuoteID As Integer
Static strCount As Integer
If strLocationID = strLastLocationID And strOriginalQuoteID = strLastQuoteID Then
strCount = strCount + 1
Else
strLastLocationID = strLocationID
strLastQuoteID = strQuoteID
strCount = 0
End If
RenewCount = strCount
End Function
下面是數據
LocationID QuoteID OriginalQuoteID
2 1094117
2 1125718 1094117
2 1148296 1125718
2 1176466 1148296
5 1031892
5 1044976 1031892
5 1059216 1044976
5 1077463 1059216
還有一些日期爲每個我可以操縱以及政策的一個小樣本。 我的想法是得到以下結果,並找到每個位置的最後一列的最大值。
LocationID QuoteID OriginalQuoteID Renewal_Count
2 1125718 1094117 0
2 1148296 1125718 1
2 1176466 1148296 2
5 1031892 0
5 1044976 1031892 1
5 1059216 1044976 2
5 1077463 1059216 3
5 1098124 1077463 4
5 1100215 0
5 1198714 1100215 1
5 1254125 1198714 2
任何幫助,將不勝感激。謝謝
我忘了提及這已經按位置ID排序,並且對於任何新策略,OriginalQuoteID都是空的。當我嘗試運行該函數時,我得到#num!在大多數行的列中。我想要的是給定的QuoteID連續續展的次數。所以對於以上位置ID 5 QuoteID 1254125已有2續展。
你怎麼知道,如果續費是連續? – nicomp
我忘了在策略的第一年提到OriginalQuoteID爲空。每年之後,如果它是續訂,OriginalQuoteID都有上一年的QuoteID。 – Harrison
不太確定我下面的答案是否按預期工作 - 目前它的作用是「LocationID」。在你的評論中,你說第一年的*是空的*在你的帖子中說*可以爲空* - 這是什麼?第一年總是空的 - 這給出了明確的起點,或者可以是空的,這使得起點更加模糊。 –