选择最大值 - 添加标准

时间:2016-04-27 00:59:52

标签: arrays excel if-statement max lookup

@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”。

0 个答案:

没有答案