wordpress插件更新保留修改寧波優(yōu)化推廣選哪家
List.Select 篩選列表
——在列表中返回滿足條件的元素
List.Select(列表,判斷條件)
不是列表的可以轉(zhuǎn)成列表再篩選,例如 Record.ToList
不同場(chǎng)景的判斷條件參考寫(xiě)法
(1)單條件篩選
列表中小于50的數(shù)字
= List.Select({1,99,8,98,5},each _
<50)
(2)多條件篩選【或】
列表中小于50或大于98的數(shù)字 【x<50,x>98】
= List.Select({1,99,8,98,5},each _
<50 or _
>98)
(3)多條件篩選【且】
列表中大于25且小于100的數(shù)字 【25<x<100】
= List.Select({1,30,25,18,100},each_
>25 and_
<100
(4)嵌套函數(shù)進(jìn)行篩選
例如篩選奇偶
= List.Select({1,30,25,18,100},Number.IsEven
)
——Number.IsEven判斷是否為偶數(shù)
——Number.IsOdd 判斷是否為奇數(shù)
(5)篩選文本
例如要包含了 孫 的
= List.Select({“孫興華”,“孫悟空”,“豬八戒”},each Text.Contains
(_,“孫”))
實(shí)際運(yùn)用
1 行篩選
但是往往列表不是現(xiàn)成的,就需要轉(zhuǎn)化,例如
求每個(gè)學(xué)生及格科目有幾門(mén),也就是篩選的對(duì)象是每一行記錄
1 那么就需要先在每一行里嵌入當(dāng)前行的記錄:
= Table.AddColumn(源,“及格數(shù)”, each_
)
2 接著將記錄轉(zhuǎn)列表:
= Table.AddColumn(源,“及格數(shù)”, each Record.ToList(_)
)
3 再跳過(guò)姓名,只取后面的數(shù)值。因?yàn)槿绻蛔鲞@一步,后面篩選的時(shí)候,會(huì)告訴你 文本無(wú)法運(yùn)算
而出錯(cuò),像下圖這樣
= Table.AddColumn(源,“及格數(shù)”, each List.Skip
(Record.ToList(_),1
))
4 再接著篩選:
= Table.AddColumn(源,“及格數(shù)”, each List.Select
(List.Skip(Record.ToList(_),1),each _>=60
))
到此為止,篩選出來(lái)的結(jié)果還是一個(gè)list
5 最后計(jì)數(shù):
= Table.AddColumn(源,“及格數(shù)”, each List.Count
(List.Select(List.Skip(Record.ToList(_),1),each _>=60)))
那么優(yōu)秀的科目數(shù)量也可以依法炮制:
= Table.AddColumn(及格數(shù)
,“優(yōu)秀數(shù)”, each List.Count(List.Select(List.Skip(Record.ToList(_),1),each _>=80)))
——標(biāo)紅的地方需要自行替換,如果不在上一步的基礎(chǔ)上做,這里就直接寫(xiě) 源
。
2 列篩選
以上圖為例,就是在科目里篩選及格人數(shù)
不需要再轉(zhuǎn)成列表,因?yàn)楸旧砭褪橇斜?。也不需要跳過(guò)第一個(gè),因?yàn)楸旧砭筒话瑯?biāo)題。
但是需要寫(xiě)成記錄 record的形式,再轉(zhuǎn)成表 Table.FromRecords,并連接上前一個(gè)表。
全部寫(xiě)完過(guò)分長(zhǎng)了,下面以語(yǔ)文為例:
語(yǔ)文=List.Count(List.Select(源[語(yǔ)文],each _>=60))
其他科目也可以參照著加在后面,位置在中括號(hào) ] 的前面,每寫(xiě)一個(gè)用英文逗號(hào)隔開(kāi)
步驟解析可以看List.Sum 列求和
是同一個(gè)思路