[英]How to calculate an average with complex conditions in excel
我會盡力解釋這個。
我有一個用SQL提取的數據表。 我的目標是計算列中某些單元格的平均值。 存在這樣的條件:單元所在的行包含諸如“B”的特定字母。
我正在處理建築許可證,他們都有一個形式的ID:“12-3456-12-B”。 這封信類似於許可證的類型,這就是我想要划分平均值的方式。 在列中,我希望從中提取平均值,其百分比類似於所述許可證的修復程度。
所以我想要的是對個別許可證類型進行平均維修。
從邏輯角度看:“如果當前行中的單元格B包含ie”-B“,則使用該值
干杯!
如果ID在列B
,而在列C
的%s,則使用帶有"wildcard"
Excel中的AVERAGEIF
函數非常簡單,例如
=AVERAGEIF(B:B,"*B",C:C)
該公式平均列C,其中同一行上的列B條目以“B”結尾
你試過什么了? 任何具體問題?
從我的角度來看,你基本上有兩個選擇:
1)您使用Excel公式
2)你使用VBA(推薦)
使用選項1可以通過多種方式完成。 最簡單的可能是為每個許可類型使用一個新列,然后在那里使用簡單的IF
公式來獲取RIGHT(yourCell, 1)
為B或C或其他任何值時的值。 然后,您執行COUNTIF
以獲取該列中的條目數,這將使您能夠計算列值的平均值。
另一種方式是通過VLOOKUP
。 使用它你可以建立自己的矩陣,然后計算平均值(我希望這個方法超過上述方法)。
現在選擇2(VBA):
這不會讓您的實際Excel表格膨脹,這是一個很大的優點。 為每個許可類型獲取一個數組,只需使用一個簡單的循環來解析工作表中的每一行(包含內容),並將修復程度值添加到相應的數組中。 完成后只需解析每個數組,計算平均值並將它們寫回表單中的一些不錯的結果表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.