公式是熊市,但:
=SUMPRODUCT(--MID(SUBSTITUTE(C2,",",REPT(" ",99)),(ROW(INDIRECT("1:" & LEN(C2)-LEN(SUBSTITUTE(C2,",",""))+1))-1)*99+1,99))/(LEN(C2)-LEN(SUBSTITUTE(C2,",",""))+1)
有很多這裏發生的一切,讓我們把它分解:
LEN(C2)-LEN(SUBSTITUTE(C2,",",""))+1
:獲取的項目數由,
分離,在這種情況下,5
。它在這個公式中被使用兩次。第二個是獲得平均值的分母。
第二個用於(ROW(INDIRECT("1:" & LEN(C2)-LEN(SUBSTITUTE(C2,",",""))+1))-1)
。這是迭代的部分。 SUMPRODUCT將導致重複和總結部分。
該行將返回1,2,3,...以返回由LEN(...) - LEN(...)函數返回的內容。我們從1開始減1。
每次迭代乘以99,我們加1,因爲MID不喜歡0作爲開始。
SUBSTITUTE(C2,",",REPT(" ",99))
創建一個字符串,其中包含99個空格代替每個「,」。
MID將這個由現在100個空格分隔的數字串解析出來。第二個標準是從1,100,199,298,...等迭代單元時間中的數字數量。這將永遠落在一個空間上,因爲我們給了它100個空間來降落。
第三個標準設置每次迭代返回字符串的長度。我們使用99,因爲它會在數字之後再次出現空格。
MID前面的--
將導致返回的分析字符串恢復爲數字。這迫使Excel刪除多餘的空格並僅查看數字。
SUMPRODUCT()維護這個數字並將其添加到每個迭代的總數中。
所以,你必須:
代碼的功能,可用於前粘貼單元格'C2'的值爲'2,40,300,200,340',並且您想獲得這些數字的平均值?如果你有不同的單元格,那麼爲什麼不使用具有一些分隔符的'= Concatenate()',或者如果你有最新版本''TextJoin()',並將它存儲在它自己的單元格中。因此,您可以輕鬆完成功能的單元格範圍,以及將所有數字一起存儲的最終「輔助單元」? – BruceWayne
您只是試圖以某種方式使用Excel,Excel並不是用來使用Excel的。考慮到Excel中的公式如何工作,嘗試將數據存儲在一個列中,比如您建議並試圖從中計算數據,這是毫無意義的。如果VBA是一個選項,這將是非常簡單的。 – Kyle
而不使用VBA,您可以使用「+」2 + 40 + 300等來存儲編號,然後使用此方法評估單元格http://www.myonlinetraininghub.com/excel-factor-12-secret-evaluate-function然後將結果除以(LEN(A2)-LEN(SUBSTITUTE(A2,「+」,「」))+ 1)+符號的數目加1. @Kyle不是每個人都試圖以從未意味的方式使用Excel被使用;) – Gordon