如何在Power Query中提取數(shù)據(jù)——列表篇(4)

(六)刪除指定數(shù)據(jù)進(jìn)行提取

1.?????刪除指定數(shù)據(jù)進(jìn)行提取

List.RemoveRange(list as?list, index as?number,?optional?count as?number) as?list

第1參數(shù)為數(shù)據(jù)列表章姓;第2參數(shù)為索引數(shù)字格式降传,從0開(kāi)始箍邮;第3參數(shù)為刪除的數(shù)量,默認(rèn)為1除破,如果為0則代表不刪除,同時(shí)(第2參數(shù)+第3參數(shù))<=列表值的數(shù)量骗露;最終生成的是列表

例:

List.RemoveRange({1..10},0)={2..10}

List.RemoveRange({1..10},3,5)={1..3,9,10}

解釋:第2參數(shù)索引3代表是第4位师枣,也就是數(shù)值4,從此位置開(kāi)始連續(xù)刪除之后的5個(gè)值(也就是4-8)歪今。


2.?????刪除空值后進(jìn)行提取

List.RemoveNulls(list as?list) as?list

對(duì)于列表中的空值進(jìn)行刪除嚎幸,生成一個(gè)新的列表,只有1個(gè)參數(shù)寄猩。也可以理解為對(duì)一個(gè)列表選擇不等于空值嫉晶。List.Select(列表, each _<>null)

例:

List.RemoveNulls({null,1,2})={1,2}

List.Select({null,1,2},each _<>null)={1,2}


3.?????批量刪除匹配值后提取

List.RemoveMatchingItems(list1 as?list, list2 as?list,?optional?equationCriteria as?any) as?list

從列表1從刪除列表2的指定值,如果沒(méi)找到則返回原始list1。第1參數(shù)為原始列表替废;第2參數(shù)為要?jiǎng)h除的值列表箍铭;第三參數(shù)是可以指定一個(gè)可選相等條件來(lái)空值的測(cè)試。

例:

List.RemoveMatchingItems({1..10},{5..10})={1..4}


List.RemoveMatchingItems({#date(2018,11,11),1..10,"a".."z"},List.Transform({0..364},(x)=>Date.AddDays(#date(2018,1,1),x)))={1..10,"a".."z"}

解釋椎镣,通過(guò)List.Transform函數(shù)生成一個(gè)2018年的時(shí)間列表诈火,這樣就可以把原來(lái)列表中有關(guān)2018年的時(shí)間都可以去除。


List.RemoveMatchingItems({1..10},{5}, each_=5)={1..4,6..10}

解釋:因?yàn)榈?參數(shù)是=5状答,則找到等于5的值冷守,并刪除


List.RemoveMatchingItems({1..10},{5}, each_<=5)={6..10}

解釋:因?yàn)榈?參數(shù)為{5},第3參數(shù)為<=5惊科,用第2參數(shù)和第3參數(shù)做比較拍摇,如果第2參數(shù)符合第3參數(shù)條件,則刪除條件即為第3參數(shù)馆截;如果第2參數(shù)不符合第3參數(shù)條件充活,則返回第3參數(shù)的相反值。


List.RemoveMatchingItems({1..10},{4}, each_>5)={5..10}

解釋:因?yàn)榈?參數(shù)不符合第3參數(shù)的條件孙咪,返回的結(jié)果是第三


List.RemoveMatchingItems({"a".."z"},{"b"},each_ >="a")={}

解釋:因?yàn)榈?參數(shù)符合第3參數(shù)堪唐,所以刪除條件為第3參數(shù),所有的值都大于"a"翎蹈,所以都被刪除淮菠,返回的是一個(gè)空列表。


4.?????從尾刪除列表的最后幾個(gè)數(shù)據(jù)

List.RemoveLastN(list as?list,?optionalcountOrCondition as?any) as?any

從列表尾刪除N個(gè)元素荤堪。第1參數(shù)是數(shù)據(jù)列表合陵;第2參數(shù)可以是個(gè)數(shù)也可以是條件,如果是數(shù)字則直接刪除最后N項(xiàng)的數(shù)據(jù)澄阳,如果是條件拥知,一旦不滿足條件即結(jié)束。

例:

List.RemoveLastN({1..10}, 3)={1..7}


List.RemoveLastN({1..10}, each _>5)={1..5}

解釋:因?yàn)閺暮箝_(kāi)始和5比碎赢,直到5為止結(jié)束低剔。所以返回的是1-5的列表。


List.RemoveLastN({1..10,1}, each _>5)={1..10,1}

解釋:因?yàn)閺暮箝_(kāi)始肮塞,第一個(gè)是1襟齿,和第2參數(shù)的條件比較,是不符合的枕赵,所以就結(jié)束對(duì)比猜欺,也就是沒(méi)有符合刪除的條件,返回的就是原列表{1..10,1}拷窜。


5.?????從頭刪除列表的最后幾個(gè)數(shù)據(jù)

List.RemoveFirstN(list as?list,?optionalcountOrCondition as?any) as?any

從列表頭刪除N個(gè)元素开皿。第1參數(shù)是數(shù)據(jù)列表涧黄;第2參數(shù)可以是個(gè)數(shù)也可以是條件,如果是數(shù)字則直接刪除最初的N項(xiàng)數(shù)據(jù)赋荆,如果是條件笋妥,一旦不滿足條件即結(jié)束。

例:

List.RemoveFirstN({1..10},3)={4..10}


List.RemoveFirstN({1..10}, each _<5)={5..10}

解釋:因?yàn)閺念^開(kāi)始和小于5比糠睡,直到5為止結(jié)束挽鞠。所以返回的是5-10的列表。


List.RemoveFirstN({10,1..10}, each _<5)={10,1..10}

解釋:因?yàn)閺暮箝_(kāi)始狈孔,第一個(gè)是10,和第2參數(shù)的條件比較材义,是不符合的均抽,所以就結(jié)束對(duì)比,也就是沒(méi)有符合刪除的條件其掂,返回的就是原列表{10,1..10}油挥。


6.?????根據(jù)新列表刪除舊列表中的值

List.RemoveItems(list1 as?list, list2 as?list) as?list

第1個(gè)參數(shù)是需要被替換的列表;第2個(gè)參數(shù)是去要?jiǎng)h除的值列表款熬;返回生成的是新列表格式深寥。

例:

List.RemoveItems({1..10},{5..10})={1..4}

List.RemoveItems({1,2,3,2,1},{1,2})={3}


List.RemoveItems({"a","b","c",1,2,3,"一","二"},{"a".."z"})={1..3,"一","二"}

解釋:因?yàn)榈?參數(shù)是英文字母的列表,所以把第1參數(shù)舊列表中所有英文26個(gè)字母單字都刪除了贤牛。


問(wèn):那如何刪除列表中值包含"a"的所有元素惋鹅?

List.RemoveItems({"ab","bc"},List.FindText({"ab","bc"},"a"))={"bc"}

解釋:因?yàn)橐紤]到包含,可以參考4List.FindText函數(shù)殉簸,找到哪些包含"a"的列表值并生成一個(gè)新的需要?jiǎng)h除的列表闰集,最后通過(guò)List.RemoveItems函數(shù)來(lái)進(jìn)行刪除。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末般卑,一起剝皮案震驚了整個(gè)濱河市武鲁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蝠检,老刑警劉巖沐鼠,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異叹谁,居然都是意外死亡饲梭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門本慕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)排拷,“玉大人,你說(shuō)我怎么就攤上這事锅尘〖嗲猓” “怎么了布蔗?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)浪腐。 經(jīng)常有香客問(wèn)我纵揍,道長(zhǎng),這世上最難降的妖魔是什么议街? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任泽谨,我火速辦了婚禮,結(jié)果婚禮上特漩,老公的妹妹穿的比我還像新娘吧雹。我一直安慰自己,他們只是感情好涂身,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布雄卷。 她就那樣靜靜地躺著,像睡著了一般蛤售。 火紅的嫁衣襯著肌膚如雪丁鹉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,793評(píng)論 1 314
  • 那天悴能,我揣著相機(jī)與錄音揣钦,去河邊找鬼。 笑死漠酿,一個(gè)胖子當(dāng)著我的面吹牛冯凹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播记靡,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谈竿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了摸吠?” 一聲冷哼從身側(cè)響起空凸,我...
    開(kāi)封第一講書(shū)人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎寸痢,沒(méi)想到半個(gè)月后呀洲,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡啼止,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年道逗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片献烦。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡滓窍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出巩那,到底是詐尸還是另有隱情吏夯,我是刑警寧澤此蜈,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站噪生,受9級(jí)特大地震影響裆赵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜跺嗽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一战授、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桨嫁,春花似錦植兰、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至肚逸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間彬坏,已是汗流浹背朦促。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栓始,地道東北人务冕。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像幻赚,于是被迫代替她去往敵國(guó)和親禀忆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容