Excel 相对于相邻列中的值,无法在列中找到最大值
我想在B列中找到相对于A列中的值的最大值 例如,我只想在列A中的值为“A”的范围中查找列B中的最大值 所以,结果是(1,3)单元格为100 然后,我必须找到范围的最大值,其中A列中的值是“b”。 所以,单元格(2,3)的结果是110。 以此类推,获取下一个值 宏的最终结果应为: 我已经编写了在B列中查找最大值的代码,如下所示,但无法通过引用查找最大值:Excel 相对于相邻列中的值,无法在列中找到最大值,excel,vba,Excel,Vba,我想在B列中找到相对于A列中的值的最大值 例如,我只想在列A中的值为“A”的范围中查找列B中的最大值 所以,结果是(1,3)单元格为100 然后,我必须找到范围的最大值,其中A列中的值是“b”。 所以,单元格(2,3)的结果是110。 以此类推,获取下一个值 宏的最终结果应为: 我已经编写了在B列中查找最大值的代码,如下所示,但无法通过引用查找最大值: Sub my() Cells(1, 3).Value = Application.WorksheetFunction.Max(Columns
Sub my()
Cells(1, 3).Value = Application.WorksheetFunction.Max(Columns("B"))
End Sub
请提供帮助。不需要宏:
{=MAX(IF(A$1:A$9999="a",B$1:B$9999))}
这将找到最大的“a”值和
{=MAX(IF(A$1:A$9999="b",B$1:B$9999))}
这是最大的“b”值
请注意,这是一个数组公式,因此使用
Ctrl
+Shift
+enter
而不是通常的enter
,这意味着您不必键入{}
。这只表明这是一个数组公式。感谢您的大力帮助。很好用。但是如何在VBA中做到这一点?@Abhijeet-也许是一个很好的老式方法。马可-考虑到这是一个数组公式,应该尽可能减少行数,用列中的最后一个数字限制行数(下面没有什么重要的),例如=MAX(如果(A$1:INDEX(A:A,MATCH(1e99,B:B))=“A”,B$1:INDEX(B:B,MATCH(1e99,B:B))
作为CSE。@Jeeped,你是对的,应该提到9999应该根据您的建议进行调整,或者像您建议的那样动态查找。我可能会用COUNTA(A:A)
替换MATCH
部分以提高可读性。@Abhijeet在VBA中您可以这样实现:Range(“C1”).FormulaArray=“=MAX(IF(A$1:A$9999=”“A”“,B$1:B$9999))
@Jeeped,感谢您宝贵的帮助。或与。