获得从2列数据(无辅助列)中计算出的最大值

问题描述 投票:0回答:2

我有一些数据,存储在A列和B列中。对于每一行,我想获得A列和B列中的值之间的差。即单元格(1,2)-单元格(1,1),以此类推。第二步是确定第i行上的差异是否为前n行的最大值。通过helper列,我可以使用公式或类似的代码来实现它。

for i = 1 to LR
cells(i,3) = cells(i,2) - cells(i,1)
next i

for i = 1 to LR
if cells(i,3) = .max(range(cells(i-19,3),cells(i,3))) then
cells(i,4) = "MAX"
end if
next i

虽然我不想添加帮助器列,但是哪些vba代码可以做到这一点?您能告诉我我可能不熟悉所需语法的代码吗?

excel vba function helper
2个回答
1
投票

快速又肮脏:

Sub Test()

Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Sheet1")
Dim lr As Long, mx As Double

With ws
    lr = .Cells(.Rows.Count, 1).End(xlUp).Row
    mx = .Evaluate(Replace("MAX(B1:BY-A1:AY)", "Y", lr))
End With

End Sub

1
投票

这是您需要的吗?

Sub e()
Dim i As Long
Dim m As Double
For i = 1 To LR
    If Abs(Cells(i, 1) - Cells(i, 2)) > m Then m = Abs(Cells(i, 1) - Cells(i, 2))
Next i
MsgBox m
End Sub

循环浏览各行,并检查当前最大差m是否超过当前行差。它包装在Abs中以帮助处理任何负值

BUT由JvdV指出,这不是一回事-我的答案是寻找最大的差异,而不是最大值;

-150的差异大于100,但是100是-150和100之间的最大值。

© www.soinside.com 2019 - 2024. All rights reserved.