我的女朋友需要做一些與Excel公式相當複雜的事情,我一直無法爲她找到答案。從Excel中的函數返回單元格作爲變量
她希望找到一個細胞範圍的最小值,然後,在識別該細胞後,使用其右側和左側的5個值來計算所有這些值的平均值。
這可能嗎?
我的女朋友需要做一些與Excel公式相當複雜的事情,我一直無法爲她找到答案。從Excel中的函數返回單元格作爲變量
她希望找到一個細胞範圍的最小值,然後,在識別該細胞後,使用其右側和左側的5個值來計算所有這些值的平均值。
這可能嗎?
我有一個公式可以完成你在你的問題中列出的內容。
假設我們正在尋找一個列的民(F:F),以下工作:
=AVERAGE(OFFSET($F1,MATCH(MIN($F:$F),$F:$F,FALSE)-1,1,1,5),OFFSET($F1,MATCH(MIN($F:$F),$F:$F,FALSE)-1,-1,1,-5))
字母F可以爲任何一個列你打算用公式來代替。
這是如何工作的是鰭柱的Min
,然後使用到match
找到行號,然後offset
S選擇5個細胞的權利(和第二偏移重複和做同樣的事情反轉到左側)。最後,這兩個範圍均用作average
公式的輸入。
對於任何單個列或單列(其中MIN值需要被找到),則可以使用此公式
=(SUM(OFFSET(INDEX(Range,MATCH(MIN(Range),Range,0)),0,-5,1,11))-MIN(Range))/10
在哪裏範圍是單個列/行
這不包括MIN價值從平均值,應該工作假設總是有5個單元格任何一方(例如MIN不能在列A到E)
也是一個很好的答案,我沒有想到將平均分爲兩步,就像這樣排除查找列的值。 (所以我使用了兩個偏移的平均值) – danielpiestrak
Thanks Gimp - 即使範圍是連續的,也可以工作。它適用於F2:F100或F2:Z2 –
我只是回答這個問題,因爲你的女朋友。
假設你有以下
F列是要評估的最低值列。
在這種情況下,F6是最小值。你會使用下面的代碼創建一個宏:
Sub test()
Dim val1 As String
Dim val2 As Long
val1 = WorksheetFunction.min(Range("f1:f10"))
For x = 1 To 10
If Range("f" & x).Value = val1 Then
val2 = WorksheetFunction.Average(Range("a" & x & ":k" & x))
Range("m1").Value = val2
Else
End If
Next x
End Sub
宏會發現,在F列中的最低值,然後在小區M1行中返回11個值的平均值。
如果沒有任何限制,可以使用VBA來實現。 –
你需要MIN的單元格的範圍是什麼形狀?它是一個單列還是一行......還是一個矩陣(多列/多行)? –