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

(五)替代指定數(shù)據(jù)提取弛矛。

1.????找到目標值并用指定值替換后提取

List.ReplaceValue(list as?list, oldValue as?any, newValue as?any,replacer as?function)as?list

第1參數(shù)是列表佣耐;第2參數(shù)是被替換的舊值(不指定格式);第3參數(shù)是去替換的新值(不指定格式)屈留;第4參數(shù)替換函數(shù)局冰。替換函數(shù)由2個。一個是數(shù)值替換Replacer.ReplaceValue灌危,一個是文本替換Replacer.ReplaceText康二;4個函數(shù)都被必選參數(shù)。需要注意的是空值計算列表和空列表代表不一樣的含義勇蝙。

例:

List.ReplaceValue({1..10},1,2,Replacer.ReplaceValue)={2,2..10}


解釋:因為列表里面是數(shù)值沫勿,所以用Replacer.ReplaceValue函數(shù)進行替換。

List.ReplaceValue({"a".."z"},"a","b",Replacer.ReplaceText)={"b","b".."z"}


解釋:因為列表里面是文本味混,所以用Replacer.ReplaceText函數(shù)進行替換产雹。

List.ReplaceValue({#date(2018,11,11),#datetime(2018,11,11,12,0,0)},#date(2018,11,11),#date(2019,11,11),Replacer.ReplaceValue)={#date(2019,11,11),#datetime(2018,11,11,12,0,0)}

解釋:如果是替換時間類型的話,要用Replacer.ReplaceValue函數(shù)進行替換翁锡。


List.ReplaceValue({},{},"a",Replacer.ReplaceValue)={}

解釋:因為是空列表蔓挖,所以也就不存在值的概念,返回的當然也是空列表馆衔。


List.ReplaceValue({null},null,"a",Replacer.ReplaceText)={null}

解釋:因為空值是需要用Replacer.ReplaceValue來進行替換瘟判,使用Replacer.ReplaceText則無效。


List.ReplaceValue({null},null,"a",Replacer.ReplaceValue)={"a"}

解釋:替換空值需要用到函數(shù)Replacer.ReplaceValue


List.ReplaceValue({"a"},"a",null,Replacer.ReplaceValue)={null}

解釋:如果是要用空值替換對應的值角溃,也是需要用Replacer.ReplaceValue函數(shù)拷获。


2.????指定范圍內(nèi)進行值替換

List.ReplaceRange(list as?list, index as?number, count as?number,replaceWith as?list)as?list

第1參數(shù)是列表格式;第2參數(shù)是索引的數(shù)字减细,索引是0起始匆瓜;第3參數(shù)是替換的個數(shù);第4參數(shù)是替換的列表格式未蝌;最終返回的也是列表格式陕壹。此外需要注意的是第2參數(shù)+第3參數(shù)的值要<=列表的值數(shù)量。通俗理解就是用一個列表替換一個指定范圍列表树埠。

例:

List.ReplaceRange({1..10},0,1,{"a"})={"a",2..10}

解釋:找到索引起始值為1糠馆,替換1個,用"a"替換

List.ReplaceRange({1..10},1,5,{"a","b"})={1,"a","b",7..10}

解釋:找到索引起始值為2,連續(xù)替換5個怎憋,相當于{2..6}又碌,用{"a","b"}列表替換{2..6}


3.????對列表指定批量替換

List.ReplaceMatchingItems(list as?list, replacements as?list,?optional?equationCriteria as?any) as?list

第1參數(shù)是數(shù)據(jù)列表;第2參數(shù)是批量替換的列表绊袋,每一個新舊替換作為一個list并組合成一個總的list(相當于大list套小list毕匀,要有雙層嵌套{{}}格式);第3參數(shù)可以指定一個可選相等條件值來控制相等測試(也就是用來替代被替換的值)癌别。

例:

List.ReplaceMatchingItems({1..10}, {{1,"a"}})={"a",2..10}

解釋:用"a"替換1生成新列表


List.ReplaceMatchingItems({1..10}, {{1,"a"},{2,"b"})={"a","b",3..10}

解釋:用"a"替換1皂岔,用"b"替換2生成列表


List.ReplaceMatchingItems({{1..3},{1..10}},{{{1..3},{"a".."c"}}})={{"a".."c"},{1..10}}

解釋:用{"a".."c"}列表替換{1..3}列表并生成新的組合列表。單個列表用可以用多個值替換展姐,多個列表則需用列表進行替換躁垛。


List.ReplaceMatchingItems({1..5},{{1,0}},each_<3)={0,0,3,4,5}

解釋:使用第2參數(shù)的舊值和第3參數(shù)做比較剖毯,如果符合則替換條件為第3參數(shù),如果不符合教馆,替換條件則是第3參數(shù)的相反值逊谋。因為第2參數(shù)的舊值符合第3參數(shù)的條件,則替換條件就是第3參數(shù)<3土铺,所以1,2被0替換胶滋。


List.ReplaceMatchingItems({1..5},{{1,0}},each_>3)={0,0,0,4,5}

解釋:因為第2參數(shù)舊值不符合第3參數(shù)條件,所以條件為第3參數(shù)的相反悲敷,也就是<=3究恤,用0替換<=3的條件的值。


List.ReplaceMatchingItems({1..5,1,2},{{1,0}},each_>3)={0,0,0,4,5,0,0}

解釋:因為第2參數(shù)舊值不符合第3參數(shù)條件后德,所以替換條件是第3參數(shù)的相反值部宿,用0替換<3的條件值。


4.????生成重復的列表

List.Repeat(list as?list, count as?number) as?list

第1個參數(shù)是需要進行操作的列表探遵;第2個參數(shù)是重復的次數(shù)

List.Repeat({1},3)={1,1,1}

List.Repeat({1..10},2)={1..10}&{1..10}

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窟赏,一起剝皮案震驚了整個濱河市妓柜,隨后出現(xiàn)的幾起案子箱季,更是在濱河造成了極大的恐慌,老刑警劉巖棍掐,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件藏雏,死亡現(xiàn)場離奇詭異,居然都是意外死亡作煌,警方通過查閱死者的電腦和手機掘殴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粟誓,“玉大人奏寨,你說我怎么就攤上這事∮シ” “怎么了病瞳?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長悲酷。 經(jīng)常有香客問我套菜,道長,這世上最難降的妖魔是什么设易? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任逗柴,我火速辦了婚禮,結(jié)果婚禮上顿肺,老公的妹妹穿的比我還像新娘戏溺。我一直安慰自己渣蜗,他們只是感情好,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布于购。 她就那樣靜靜地躺著袍睡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肋僧。 梳的紋絲不亂的頭發(fā)上斑胜,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天,我揣著相機與錄音嫌吠,去河邊找鬼止潘。 笑死,一個胖子當著我的面吹牛辫诅,可吹牛的內(nèi)容都是我干的凭戴。 我是一名探鬼主播,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼炕矮,長吁一口氣:“原來是場噩夢啊……” “哼么夫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肤视,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤档痪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后邢滑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腐螟,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年困后,在試婚紗的時候發(fā)現(xiàn)自己被綠了乐纸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡摇予,死狀恐怖汽绢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侧戴,我是刑警寧澤宁昭,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站救鲤,受9級特大地震影響久窟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜本缠,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一斥扛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦稀颁、人聲如沸芬失。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棱烂。三九已至,卻和暖如春阶女,著一層夾襖步出監(jiān)牢的瞬間颊糜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工秃踩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衬鱼,地道東北人。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓憔杨,卻偏偏與公主長得像鸟赫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子消别,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

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