Excel那些看起很難,其實(shí)很簡(jiǎn)單的問(wèn)題!DAX初體驗(yàn)

問(wèn)題難不難,除了知識(shí)儲(chǔ)備,還有看問(wèn)題的角度!
我們來(lái)看第一個(gè)“難題”,體育測(cè)試,每個(gè)人測(cè)試數(shù)次,現(xiàn)在需要根據(jù)每個(gè)人測(cè)試順序,添加編號(hào),比如張三,第一次是1,第二次就是2,依次類(lèi)推!
難題1 | 按照出現(xiàn)的順序編號(hào)
=COUNTIF($A$2:A2,A2)

知識(shí)點(diǎn)(已寫(xiě)專(zhuān)題):
1、COUNTIF函數(shù)的使用:函數(shù) | COUNTIF用法大全
2、單元格引用方式:基礎(chǔ) | Excel中單元格的引用方式,讀這篇就夠了!
該方法同樣適用于,重名檢測(cè),只要出現(xiàn)大于1的就是重復(fù)的姓名。
比如我們只需要第一次或者第二次的出現(xiàn)的,都可以直接篩選,非常方便!
比如我們要查找第二次的成績(jī),直接篩選2即可!

本案例如果是新手,可能會(huì)出現(xiàn)逐個(gè)姓名篩選,然后一個(gè)一個(gè)編號(hào)!如果數(shù)據(jù)較大,是一個(gè)很大的工作量!
就這上面的案例,我們繼續(xù),求出每個(gè)人最高的三次成績(jī)平均值,如果不足三次直接取平均值!
難題2 | 最高的三次成績(jī)平均值
第一步:按照根據(jù)姓名和成績(jī)排序
注意成績(jī)降序排序,從大到?。?/span>

第二步:使用公式AVERAGEIFS
=ROUND(AVERAGEIFS(C:C,B:B,"<=3",A:A,E2),)


如果你覺(jué)得上面的做法不夠酷,可以使用公式
▼我是一條數(shù)組公式,請(qǐng)使用Ctrl+Shift+Enter錄入我
=ROUND(AVERAGE(LARGE(IF($A$2:$A$15=$E2,$C$2:$C$15),ROW(INDIRECT("1:"&MIN(3,COUNTIF(A:A,E2)))))),)
有測(cè)試不滿(mǎn)三次的情況!就按實(shí)際次數(shù)取平均值!用3和測(cè)試次數(shù)取小即可

當(dāng)然,如果你是一個(gè)數(shù)據(jù)分析人員,懂Power Pivot,你還可以使用自己認(rèn)為更酷、更合適的DAX來(lái)處理
▼最高三次成績(jī)平均值度量值
=IF(HASONEVALUE('表1'[姓名]),ROUND(CALCULATE(AVERAGEX(TOPN(3,'表1','表1'[測(cè)試成績(jī)],DESC),'表1'[測(cè)試成績(jī)])),0),BLANK())

小編是一個(gè)DAX初學(xué)者!如果有什么寫(xiě)的不適合的地方,歡迎指正!
最近我們也一直在分享Power Query,要不我們也來(lái)寫(xiě)一下!
▼Power Query中的M函數(shù)依據(jù)簡(jiǎn)潔
=?Table.Group(更改的類(lèi)型,"姓名",{"最高三次成績(jī)平均值",each?Number.Round(List.Average(List.MaxN([測(cè)試成績(jī)],3)),0)})

List.MaxN處理此類(lèi)問(wèn)題真是非常的簡(jiǎn)潔!M函數(shù)中有很多List函數(shù),他們極大的豐富了數(shù)據(jù)的提取、整理和聚合!
難題3 |?一共有幾人測(cè)試?
每個(gè)人有多次測(cè)試,所以應(yīng)該對(duì)姓名去重計(jì)數(shù)!
最簡(jiǎn)單的 ,自然就是數(shù)據(jù)透視表,拖拽一下即可搞定!

你依然覺(jué)得,不夠酷,非要使用函數(shù)處理也行!
=SUMPRODUCT(1/COUNTIF($A$2:$A$15,$A$2:$A$15))
公式解讀:COUNTIF去重計(jì)數(shù)解讀

當(dāng)然說(shuō)回來(lái),什么方法好?什么最簡(jiǎn)單!適合自己就是最好的!每個(gè)人所掌握的知識(shí)和方向不同,普通出入職場(chǎng)的辦公小白,統(tǒng)一推薦第一種,能解決問(wèn)題,比什么花里胡哨都重要!