天天看點

Text.Select按字元進行統計案例

本期案例是根據級别情況進行統計顯示,前後轉換效果如下:

Text.Select按字元進行統計案例

解題套路

1.Text.Select

思路比較簡單,按級别進行周遊,提取對應級别的字元,然後計算字元長度。

Table.AddColumn(源,"統計",each Text.Combine(List.Transform({"優","良","中","差"},(x)=>Text.Format("#{0}:#{1}",{x,Text.Length(Text.Select([級别],x))}))," "))           

2.TextPositionOf

通過判斷各級别在“級别”中的所有位置,然後統計個數。

Text.Select按字元進行統計案例
Table.AddColumn(源,"統計",each Text.Combine(List.Transform({"優","良","中","差"},(x)=>Text.Format("#{0}:#{1}",{x,List.Count(Text.PositionOf([級别],x,2))}))," "))           

3.Table.Group

将“級别”進行拆分,轉換為表進行分組。

Text.Select按字元進行統計案例
Table.AddColumn(源,"統計",each Text.Combine(List.Transform(List.Sort(Table.ToRows(Table.Group(Table.FromColumns({Text.ToList([級别])}),"Column1",{"a",each List.Count([Column1])})),each Text.PositionOf("優良中差",_{0})),(x)=>Text.Format("#{0}:#{1}",x))," "))           

4.List.Accumulate

将“級别”轉換為清單,并排序,然後對各級别進行拆分統計。

Text.Select按字元進行統計案例
Table.AddColumn(源,"統計",each Text.Combine(List.Accumulate(List.Sort(Text.ToList([級别]),each Text.PositionOf("優良中差",_))&{""},{{},{}},(x,y)=>if x{1}={} or List.Last(x{1})=y then {x{0},x{1}&{y}} else {x{0}&{Text.Format("#{0}:#{1}",{x{1}{0},List.Count(x{1})})},{y}}){0}," "))           

以上是本期内容。