@ScottCraner向我的question提供了以下公式,我希望我的数据集的E列读取“Max”,其中ID包含该状态的最大概率。如果同一个州的两个ID具有相同的概率,如在马里兰州,我希望“Max”显示具有最近日期的ID。如果两个ID在概率和日期都匹配,那么我希望“Max”只出现在每组国家中的一个ID。
Set dbs = CurrentDb()
Set qdf = dbs.QueryDefs("qryNewRequest")
qdf.Parameters(0) = Me![hdr_ID]
Set rst = qdf.OpenRecordset()
strHTML = "<HTML><Body><table border='1' width='50%'><tr><th>Request Date</th><th>Submitted By</th>" & _
"<th>Department</th><th>Effective Date</th><th>Description</th></tr>"
With rst
Do While Not rst.EOF
Mailbody = strHTML & "<tr><td>" & rst("hdr_req_date") & "</td><td>" & _
rst("usr_name") & "</td><td>" & rst("hdr_department") & "</td><td>" & _
rst("dtl_req_eff_date") & "</td><td>" & rst("dtl_chg_desc") & "</td></tr>" & _
vbCrLf
rst.MoveNext
Loop
End With
strHTML = strHTML & "</table></body></html>"
Set olApp = CreateObject("Outlook.application")
Set olItem = olApp.CreateItem(0)
olItem.display
olItem.To = "me@mymail.com"
olItem.Subject = "New Request"
olItem.HTMLbody = Mailbody
数据集
=IF(ROW(D2)=MIN(IF((ABS($C$2:$C$18-$H$1)=MIN(IF(($A$2:$A$18=A2)*($B$2:$B$18=MAX(IF(($A$2:$A$18=A2),$B$2:$B$18))),ABS($C$2:$C$18-$H$1))))*($A$2:$A$18=A2),ROW($D$2:$D$18))),"Max","")
该公式运作得很好。现在我想添加标准,如果概率= 100%并且日期是最早的(即最小)日期,那么应该将“Max”分配给该记录。该标准是最重要的,应该在上述公式中概述的“Max”的所有其他名称之前。请注意,每组州只应出现一个“Max”(例如,加利福尼亚州只有一条记录在E栏中应为“Max”。