人妻系列无码专区av在线,国内精品久久久久久婷婷,久草视频在线播放,精品国产线拍大陆久久尤物

rowcount(你會(huì)用PowerQuery統(tǒng)計(jì)字符串中各類字符出現(xiàn)的次數(shù)嗎)

rowcount(你會(huì)用PowerQuery統(tǒng)計(jì)字符串中各類字符出現(xiàn)的次數(shù)嗎)

閻來(lái) 2025-04-11 科技 13 次瀏覽 0個(gè)評(píng)論

很多時(shí)候我們需要統(tǒng)計(jì)單個(gè)字符或某種字符出現(xiàn)的次數(shù),那么在PowerQuery中怎么實(shí)現(xiàn)呢?

你會(huì)用PowerQuery統(tǒng)計(jì)字符串中各類字符出現(xiàn)的次數(shù)嗎?

01統(tǒng)計(jì)字符串中單一字符出現(xiàn)的次數(shù)

有小伙伴提了一個(gè)問(wèn)題:“PowerQuery是否有直接統(tǒng)計(jì)字符串中指定字符個(gè)數(shù)的函數(shù)”,我翻了下PowerQuery參考,并沒(méi)有找到這樣的一個(gè)函數(shù)。

那有沒(méi)有法子用PowerQuery來(lái)實(shí)現(xiàn)統(tǒng)計(jì)字符串中特定字符的出現(xiàn)個(gè)數(shù)呢?我目前知道的有兩種方法(假設(shè)要統(tǒng)計(jì)字符串【1-2-3-9】中【-】出現(xiàn)的次數(shù)):

= List.Count(Text.PositionOf("1-2-3-9","-",Occurrence.All))

= Text.Length("1-2-3-9")-Text.Length(Text.Replace("1-2-3-9","-",""))

兩種方法殊途同歸,不過(guò)我覺(jué)得方法一更“優(yōu)雅”一些。

那還會(huì)不會(huì)有第三種方法呢?

更進(jìn)一步,我們可以在這個(gè)例子的基礎(chǔ)上進(jìn)行延伸和拓展。

02統(tǒng)計(jì)字符串中出現(xiàn)的數(shù)字個(gè)數(shù)

統(tǒng)計(jì)字符串【1-2-3-9】中【數(shù)字】出現(xiàn)的次數(shù):

= List.Count(Text.PositionOfAny("1-2-3-9",{"0".."9"},Occurrence.All))

但是如果要統(tǒng)計(jì)字符串【李四5676中華234大家庭】中數(shù)字出現(xiàn)的次數(shù),則結(jié)果就不對(duì):

= List.Count(Text.PositionOfAny("李四5676中華234大家庭",{"0".."9"},Occurrence.All))

上面統(tǒng)計(jì)的結(jié)果是7,但是我們想要的結(jié)果是2。原因在于上面的代碼是把【5676】這一個(gè)數(shù)字作為四個(gè)數(shù)字統(tǒng)計(jì)了四次,實(shí)際上我們需要的是把【5676】作為一個(gè)整體統(tǒng)計(jì)一次。

那要如何才能得到正確結(jié)果呢?這時(shí)就必須借助于自定義函數(shù),比如下面這個(gè):

(str as text)=>let

源 = Text.PositionOfAny(str,{"0".."9"},Occurrence.All),

轉(zhuǎn)換為表 = Table.FromList(源, Splitter.SplitByNothing(), null, null, ExtraValues.Error),

已添加索引 = Table.AddIndexColumn(轉(zhuǎn)換為表, "索引", 0, 1),

已添加自定義 = Table.AddColumn(已添加索引, "自定義", each

try

if 已添加索引[Column1]{[索引]}+1=已添加索引[Column1]{[索引]+1}

then "drop"

else "keep"

otherwise "end"),

篩選的行 = Table.SelectRows(已添加自定義, each ([自定義] <> "drop")),

自定義1 = Table.RowCount(篩選的行)

in

自定義1

在字符串上調(diào)用這個(gè)自定義函數(shù)就能統(tǒng)計(jì)出正確的數(shù)字結(jié)果。比如字符串【李四5676中華234大家庭】中的數(shù)字是2。

所以,只有統(tǒng)計(jì)單個(gè)數(shù)字出現(xiàn)的次數(shù),才能用List.Count()結(jié)合Text.PositionOfAny()函數(shù)的方法。

如果要統(tǒng)計(jì)多個(gè)單數(shù)字構(gòu)成的數(shù)值的出現(xiàn)次數(shù),則必須用自定義函數(shù)曲線實(shí)現(xiàn)。

03統(tǒng)計(jì)字符串中漢字出現(xiàn)的個(gè)數(shù)

統(tǒng)計(jì)字符串【李四5676中華大家庭】中【漢字】出現(xiàn)的次數(shù):

= List.Count(Text.PositionOfAny("李四5676中華大家庭",{"一".."龥"},Occurrence.All))

轉(zhuǎn)載請(qǐng)注明來(lái)自夕逆IT,本文標(biāo)題:《rowcount(你會(huì)用PowerQuery統(tǒng)計(jì)字符串中各類字符出現(xiàn)的次數(shù)嗎)》

每一天,每一秒,你所做的決定都會(huì)改變你的人生!

發(fā)表評(píng)論

快捷回復(fù):

評(píng)論列表 (暫無(wú)評(píng)論,13人圍觀)參與討論

還沒(méi)有評(píng)論,來(lái)說(shuō)兩句吧...