如何在excel中提取满足多个行和列条件的值?
我有一个这样的工作表,如何在excel中提取满足多个行和列条件的值?,excel,vba,excel-formula,lookup,Excel,Vba,Excel Formula,Lookup,我有一个这样的工作表,A1:C14每天记录不同油箱的温度 我想制作一个excel公式或vba宏,能够提取每个油箱的最新温度,以便我可以在E1:G6中填写一个新表 如何编写能够: 找到正确的油箱 查找每个油箱测量的最新日期 给出所选油箱的温度值 我试着应用这个公式,但却更加困惑: =INDEX(,SMALL(IF(COUNTIF(,),MATCH(,),""),ROWS),COLUMNS) 谢谢大家! 如果列A中的日期按升序排序,则可以在单元格G2中使用以下公式并向下复制
A1:C14
每天记录不同油箱的温度
我想制作一个excel公式或vba宏,能够提取每个油箱的最新温度,以便我可以在E1:G6
中填写一个新表
如何编写能够:
=INDEX(,SMALL(IF(COUNTIF(,),MATCH(,),""),ROWS),COLUMNS)
谢谢大家! 如果列
A
中的日期按升序排序,则可以在单元格G2
中使用以下公式并向下复制
=LOOKUP(2,1/(B:B=E2),C:C)
查看类似的内容。如果日期未排序,您可以使用
索引
/聚合
功能:
=INDEX($C$2:$C$14,AGGREGATE(14,6,(AGGREGATE(14,6,($A$2:$A$14)*($B$2:$B$14=E2),1)=$A$2:$A$14)*(E2=$B$2:$B$14)*ROW($C$2:$C$14)-1,1))
这是解决您的问题的一个相当快速的尝试 首先,确保日期值的格式为日期(即2020年8月20日) 然后在F列中,您可以使用: =最大值(如果($B$2:$B$15=$E2,$A$2:$A$15)) 要查找每个油箱的最新日期,请阅读 然后在G列中使用: =索引($C$2:$C$14,匹配(1,如果($A$2:$A$14=$F2,如果($B$2:$B$14=$E2,1)),0)) 查找最近读取日期每个油箱的值 我建议您使用范围,以便插入行并自动增加日期范围等
将上述两个单独的公式组合成一个公式可能并不太难。但通过这种方式,您可以看到正在发生的情况,并且我认为每个油箱的最新读取日期可能很有用。您还可以使用用户定义的函数
Function myTemp(s As Range)
Application.Volatile
Dim vDB
Dim myS As Single
Dim myDay As Date
Dim i As Long, r As Long
vDB = Range("a1", Range("c" & Rows.Count).End(xlUp))
r = UBound(vDB, 1)
For i = 2 To r
If vDB(i, 2) = s Then
If vDB(i, 1) >= myDay Then
myDay = vDB(i, 1)
myS = vDB(i, 3)
End If
End If
Next i
myTemp = myS
End Function
使用搜索模式查看ar=-1我的excel中没有XLOOKUP