Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Conas is féidir foirmlí a chur in ionad an téacs go tapa agus ar an mórchóir de réir an liosta tagartha – tá sé socraithe againn cheana féin. Anois déanaimis iarracht é a dhéanamh in Power Query.

Mar a tharlaíonn go minic dhéanamh tá an tasc seo i bhfad níos éasca ná mar a mhíniú cén fáth oibríonn sé, ach déanaimis iarracht an dá rud a dhéanamh 🙂

Mar sin, tá dhá thábla dinimiciúla “cliste” cruthaithe againn ó ghnáth-raonta le aicearra méarchláir Ctrl+T nó foireann Baile - Formáid mar tábla (Baile - Formáid mar Tábla):

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Ghlaoigh mé ar an gcéad tábla Dáta, an dara tábla - eolaireag baint úsáide as réimse Ainm an tábla (Ainm tábla) tab Cruthaitheoir (Dearadh).

Tasc: cuir seoltaí sa tábla ina n-ionad Dáta gach teagmhas as colún A fháil Lámhleabhar dá gcomhghleacaithe cearta comhfhreagracha ón gcolún Comhalta ionadaíoch. Ba cheart go bhfanfadh an chuid eile den téacs sna cealla gan teagmháil.

Céim 1. Luchtaigh an t-eolaire isteach Power Query agus cas i liosta é

Tar éis duit an chill ghníomhach a shocrú go dtí áit ar bith sa tábla tagartha, cliceáil ar an táb Dáta (Dáta)nó ar an táb Ceist Chumhachta (má tá seanleagan de Excel agat agus chuir tú Power Query isteach mar bhreiseán ar chluaisín ar leith) ar an gcnaipe Ón tábla/raon (Ó Tábla/Raon).

Déanfar an tábla tagartha a luchtú isteach san eagarthóir ceisteanna Power Query:

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Chun nach gcuirfear isteach, céim a chuirtear leis go huathoibríoch cineál modhnaithe (Cineál Athraithe) sa phainéal ceart, is féidir na céimeanna i bhfeidhm a scriosadh go sábháilte, ag fágáil ach an chéim Foinse (Foinse):

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Anois, le tuilleadh claochluithe agus athsholáthair a dhéanamh, ní mór dúinn an tábla seo a thiontú ina liosta (liosta).

Díleá liriceach

Sula leanaimid ar aghaidh, déanaimis na téarmaí a thuiscint ar dtús. Is féidir le Cumhacht Iarratas oibriú le cineálacha éagsúla réad:
  • tábla is eagar déthoiseach é comhdhéanta de roinnt sraitheanna agus colúin.
  • Taifead (Record) – teaghrán aontoiseach eagair, ina bhfuil roinnt gnéithe réimsí a bhfuil ainmneacha orthu, mar shampla [Ainm = “Masha”, Inscne = “f”, Aois = 25]
  • liosta – colún eagair aontoiseach, ina bhfuil roinnt gnéithe, mar shampla {1, 2, 3, 10, 42} or { “Faith Hope Love” }

Chun ár bhfadhb a réiteach, beidh suim againn go príomha sa chineál liosta.

Is é an cleas anseo ná gur féidir le hítimí liostála i gCúrsaí Cumhachta a bheith ní hamháin mar uimhreacha banal nó téacs, ach freisin liostaí nó taifid eile. Tá sé i liosta chomh casta sin (liosta), comhdhéanta de thaifid (taifid) nach mór dúinn ár n-eolaire a iompú. I nodaireacht chomhréire Power Query (iontrálacha idir lúibíní cearnacha, liostaí idir lúibíní curly) bheadh ​​cuma air seo:

{

    [ Faigh = “St. Petersburg", ionadaigh = "St. St Petersburg"] ,

    [ Faigh = “St. Petersburg", ionadaigh = "St. St Petersburg"] ,

    [ Faigh = “Peadar”, Ionadaigh = “St. St Petersburg"] ,

etc.

}

Déantar a leithéid de chlaochlú ag baint úsáide as feidhm speisialta den teanga M atá ionsuite i gCeist Chumhachta – Tábla.ToRecords. Chun é a chur i bhfeidhm go díreach sa bharra foirmle, cuir an fheidhm seo leis an gcód céim ann Foinse.

Bhí sé:

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Tar éis:

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Tar éis an fheidhm Table.ToRecords a chur leis, athróidh cuma ár dtábla - déanfaidh sé liosta taifead. Is féidir inneachar na dtaifead aonair a fheiceáil ag bun an phána amhairc trí chliceáil sa chúlra cille in aice le haon fhocal Taifead (ach ní in aon fhocal amháin!)

Chomh maith leis an méid thuas, tá sé ciallmhar stróc amháin eile a chur leis - chun ár liosta cruthaithe a thaisceadh (maolán). Cuirfidh sé seo iallach ar Power Query ár liosta cuardaigh a lódáil uair amháin sa chuimhne agus gan é a athríomh arís nuair a bheidh rochtain againn air níos déanaí chun é a athsholáthar. Chun seo a dhéanamh, fillte ár bhfoirmle i bhfeidhm eile - Liosta.Bufair:

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Tabharfaidh caching den sórt sin méadú suntasach ar luas (ag roinnt uaireanta!) Le go leor sonraí tosaigh a ghlanadh.

Críochnaíonn sé seo ullmhú an lámhleabhair.

Tá sé fós le cliceáil ar Baile - Dún agus Luchtaigh - Dún agus Luchtaigh go… (Baile - Dún&Luchtaigh - Dún&Luchtaigh go..), roghnaigh rogha Just a chruthú nasc (Cruthaigh ceangal amháin) agus filleadh ar Excel.

Céim 2. Ag luchtú an tábla sonraí

Tá gach rud trite anseo. Mar a rinneadh cheana leis an leabhar tagartha, a fháil againn suas go dtí áit ar bith sa tábla, cliceáil ar an táb Dáta cnaipe Ó Tábla/Raon agus ár mbord Dáta Faigheann sé isteach Power Query. Céim curtha leis go huathoibríoch cineál modhnaithe (Cineál Athraithe) is féidir leat a bhaint freisin:

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Ní gá aon ghníomhartha ullmhúcháin speisialta a dhéanamh leis, agus bogaimid ar aghaidh go dtí an rud is tábhachtaí.

Céim 3. Athchur a dhéanamh ag baint úsáide as an bhfeidhm List.Accumulate

Cuirimis colún ríofa lenár tábla sonraí ag baint úsáide as an ordú Colún a Chur Leis - Colún Saincheaptha (Cuir colún leis - colún saincheaptha): agus cuir isteach ainm an cholúin bhreise san fhuinneog a osclaíonn (mar shampla, seoladh ceartaithe) agus ár bhfeidhm draíochta Liosta.Accumulate:

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Tá sé fós le cliceáil ar OK – agus faigheann muid colún leis na hathsholáthairtí a rinneadh:

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Tabhair faoi deara:

  • Ós rud é go bhfuil Power Query cásíogair, níor tháinig aon athsholáthar ar an líne leathdhéanach, mar go bhfuil “SPb”, ní “SPb” againn san eolaire.
  • Má tá roinnt fotheideal le hathsholáthar ag an am céanna sna sonraí foinse (mar shampla, sa 7ú líne ní mór duit "S-Pb" agus "Prospectus" a chur in ionad an dá cheann), ní chruthaíonn sé seo aon fhadhbanna (murab ionann agus foirmlí a chur in ionad ó an modh roimhe).
  • Mura bhfuil aon rud le hathsholáthar sa bhuntéacs (9ú líne), ní tharlaíonn aon earráidí (murab ionann agus, arís, nuair a chuirtear foirmlí ina ionad).

Tá luas iarratais den sórt sin an-, an-réasúnta. Mar shampla, le haghaidh tábla sonraí tosaigh le méid 5000 sraitheanna, nuashonraíodh an cheist seo i níos lú ná soicind (gan maoláin, dála an scéil, thart ar 3 soicind!)

Conas a oibríonn an fheidhm List.Accumulate

I bprionsabal, d'fhéadfadh sé seo a bheith ina deireadh (dom a scríobh, agus chun tú a léamh) an t-alt seo. Más mian leat ní amháin a bheith in ann, ach freisin a thuiscint conas a oibríonn sé “faoin gcochall”, ansin beidh ort tumadh beagán níos doimhne isteach sa pholl coinín agus déileáil leis an bhfeidhm List.Carnulate, a rinne an t-athsholáthar mórchóir ar fad. obair dúinn.

Is é an chomhréir don fheidhm seo:

=Liosta.Carnaigh(liosta, síol, taiscéalaí)

Sa chás go

  • liosta an liosta a bhfuil a ghnéithe á n-athréimniú againn. 
  • síol – staid tosaigh
  • taiscéalaí – feidhm a dhéanann oibríocht éigin (matamatach, téacs, etc.) ar an gcéad eilimint eile den liosta agus a chruinníonn toradh na próiseála in athróg speisialta.

Go ginearálta, is mar seo a bhíonn an chomhréir le haghaidh feidhmeanna scríbhneoireachta in Power Query:

(argóint1, argóint2, …argóintN) => roinnt gníomhartha le hargóintí

Mar shampla, d’fhéadfaí feidhm an tsuimithe a léiriú mar:

(a, b) => a + b

Le haghaidh List.Accumulate , tá dhá argóint riachtanacha ag an bhfeidhm charntha seo (is féidir aon rud a thabhairt orthu, ach is iad na gnáthainmneacha Bhí и reatha, mar atá sa chabhair oifigiúil don fheidhm seo, nuair:

  • Bhí – athróg ina carntar an toradh (is é a luach tosaigh an ceann a luaitear thuas síol)
  • reatha – an chéad luach atriallach eile ón liosta liosta

Mar shampla, déanaimis féachaint ar na céimeanna a bhaineann le loighic na tógála seo a leanas:

=Liosta.Carnaigh({3, 2, 5}, 10, (luaigh, reatha) => luaigh + reatha)

  1. Luach inathraithe Bhí leagtha cothrom leis an argóint tosaigh síolIe stát = 10
  2. Glacaimid an chéad eilimint den liosta (reatha = 3) agus cuir leis an athróg é Bhí (deich). Faighimid stát = 13.
  3. Glacaimid an dara eilimint den liosta (reatha = 2) agus móide é go dtí an luach carntha reatha san athróg Bhí (deich). Faighimid stát = 15.
  4. Glacaimid an tríú cuid den liosta (reatha = 5) agus móide é go dtí an luach carntha reatha san athróg Bhí (deich). Faighimid stát = 20.

Is é seo an carntha is déanaí Bhí is é an luach ár bhfeidhm List.Accumulate agus aschuir mar thoradh air:

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Má tá tú fantasize beagán, ansin ag baint úsáide as an fheidhm List.Accumulate, is féidir leat a insamhail, mar shampla, an fheidhm Excel CONCATENATE (i Power Query, tá a analógach ar a dtugtar Téacs.Combine) ag baint úsáide as an slonn:

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Nó fiú cuardach a dhéanamh ar an uasluach (aithris ar fheidhm MAX Excel, ar a dtugtar Power Query Liosta.Max):

Athsholáthar téacs mórchóir in Power Query le feidhm List.Accumulate

Mar sin féin, is é príomhghné List.Accumulate an cumas ní hamháin téacsanna simplí nó liostaí uimhriúla a phróiseáil mar argóintí, ach rudaí níos casta – mar shampla, liostaí-ó-liostaí nó liostaí-ó-taifid (hello, Eolaire!)

Breathnaímid arís ar an tógáil a rinne an t-athsholáthar inár bhfadhb:

Liosta.Cruinn(eolaire, [Seoladh], (luaigh, reatha) => Text.Replace(luaigh, reatha[Faigh], reatha[Athchuir]) )

Cad atá ar siúl i ndáiríre anseo?

  1. Mar luach tosaigh (síol) tógaimid an chéad téacs clumsy as an gcolún [Seoladh] ár mbord: 199034, St Petersburg, str. Beringa, d. 1
  2. Ansin atriálann List.Carnulate thar na heilimintí den liosta ceann ar cheann - Lámhleabhar. Is taifead é gach eilimint den liosta seo ina bhfuil péire réimsí “Cad a aimsítear – Cad a chuirfear ina ionad” nó, i bhfocail eile, an chéad líne eile san eolaire.
  3. Cuireann an fheidhm carntha isteach in athróg Bhí luach tosaigh (an chéad seoladh 199034, St Petersburg, str. Beringa, d. 1) agus go ndéanann sé feidhm charntha air – an oibríocht athsholáthair ag baint úsáide as an bhfeidhm chaighdeánach M Téacs.Replace (cosúil le feidhm SUBSTITUTE Excel). Is é a chomhréir:

    Text.Replace( buntéacs, cad atá á lorg againn, cad atá á chur ina ionad)

    agus seo againn:

    • Bhí is é ár seoladh salach, a luíonn i Bhí (ag dul ann ó síol)
    • reatha[Cuardaigh] – luach réimse A fháil ón gcéad iontráil atriallach eile ar an liosta eolaire, atá suite san athróg reatha
    • reatha[ Ionadaigh] – luach réimse Comhalta ionadaíoch ón gcéad iontráil atriallach eile ar an liosta eolaireina luí i reatha

Mar sin, do gach seoladh, reáchtáiltear timthriall iomlán áirimh de na línte go léir san eolaire gach uair, ag cur an luach ón réimse [Athsholáthair] in ionad an téacs ón réimse [Faigh].

Tá súil agam go bhfuair tú an smaoineamh 🙂

  • Bain úsáid as foirmlí in ionad an téacs i liosta
  • Léirithe Rialta (RegExp) sa Cheist Cumhachta

Leave a Reply