Ceangal teacsa a rèir staid

Sgrìobh mi mu thràth mu mar as urrainn dhut teacsa a chuir gu sgiobalta bho ghrunn cheallan gu aon agus, air an làimh eile, sreang teacsa fada a pharsadh gu co-phàirtean. A-nis leig dhuinn sùil a thoirt air gnìomh dlùth, ach beagan nas iom-fhillte - mar a ghlanas tu teacsa bho ghrunn cheallan nuair a thèid suidheachadh sònraichte a choileanadh. 

Canaidh sinn gu bheil stòr-dàta de luchd-ceannach againn, far am faod aon ainm companaidh a bhith a’ freagairt ri grunn phuist-d eadar-dhealaichte bhon luchd-obrach aige. Is e an obair againn na seòlaidhean gu lèir a chruinneachadh le ainmean chompanaidhean agus an ceangal (air an sgaradh le cromagan no leth-choloin) gus, mar eisimpleir, liosta puist a dhèanamh airson luchd-ceannach, is e sin toradh rudeigin mar:

Ceangal teacsa a rèir staid

Ann am faclan eile, feumaidh sinn inneal a ghlèidheas (ceangal) an teacsa a rèir an t-suidheachaidh - analogue den ghnìomh SUIMEANLI (SUMIF), ach airson teacsa.

Dòigh 0. Foirmle

Chan eil e gu math eireachdail, ach an dòigh as fhasa. Faodaidh tu foirmle sìmplidh a sgrìobhadh a nì cinnteach a bheil a’ chompanaidh san ath shreath eadar-dhealaichte bhon fhear roimhe. Mura h-eil e eadar-dhealaichte, an uairsin glaodh an ath sheòladh air a sgaradh le cromag. Ma tha e eadar-dhealaichte, bidh sinn “ath-shuidheachadh” an cruinneachadh, a ’tòiseachadh a-rithist:

Ceangal teacsa a rèir staid

Tha eas-bhuannachdan an dòigh-obrach seo follaiseach: bho na ceallan uile den cholbh a bharrachd a gheibhear, chan fheum sinn ach an fheadhainn mu dheireadh airson gach companaidh (buidhe). Ma tha an liosta mòr, an uairsin gus an taghadh gu sgiobalta, feumaidh tu colbh eile a chuir ris a’ cleachdadh a’ ghnìomh DLSTR (LEN), a’ sgrùdadh fad nan sreangan cruinnichte:

Ceangal teacsa a rèir staid

A-nis faodaidh tu an fheadhainn a shìoladh a-mach agus lethbhreac a dhèanamh den t-seòladh seòladh riatanach airson tuilleadh cleachdaidh.

Dòigh 1. Macrofunction gluing le aon chumha

Mura h-eil an liosta tùsail air a rèiteachadh le companaidh, chan obraich am foirmle sìmplidh gu h-àrd, ach faodaidh tu faighinn timcheall gu furasta le gnìomh àbhaisteach beag ann an VBA. Fosgail an Deasaiche Visual Basic le putadh air ath-ghoirid meur-chlàr Alt + F11 no a’ cleachdadh a’ phutan Visual Basic tab -leasachaidh (Leasaiche). Anns an uinneag a tha a’ fosgladh, cuir a-steach modal falamh ùr tron ​​​​chlàr Cuir a-steach - modal agus dèan lethbhreac de theacsa ar gnìomh an sin:

Feart MergeIf (TextRange As Range, SearchRange As Range, condition as string) Dim Delimeter As String, i As Long Delimeter = ", " chan eil gluings co-ionnan ri chèile - falbhaidh sinn le mearachd Ma tha SearchRange.Count <> TextRange.Count <> TextRange.Count An uairsin MergeIf = CVErr(xlErrRef) Deireadh gnìomh fàgail Ma thèid thu tro na ceallan gu lèir, thoir sùil air an t-suidheachadh agus cruinnich an teacsa anns a’ chaochladair OutText For i = 1 To SearchRange. Cells.Count Ma tha SearchRange.Cells(i) Like Condition An uairsin OutText = OutText & TextRange.Cells(i) & Delimeter Next i 'taisbeanadh toraidhean às aonais an delimiter mu dheireadh MergeIf = Clì (OutText, Len (OutText) - Len(Delimeter)) Deireadh gnìomh  

Ma thilleas tu a-nis gu Microsoft Excel, an uairsin anns an liosta ghnìomhan (putan fx anns a’ bhàr fhoirmeil no an taba Foirmlean - cuir a-steach gnìomh) bidh e comasach dhuinn ar gnìomh a lorg MergeIf ann an roinn Cleachdaiche air a mhìneachadh (Cleachdaiche air a mhìneachadh). Tha na h-argamaidean mun ghnìomh mar a leanas:

Ceangal teacsa a rèir staid

Dòigh 2. Concatenate teacsa le inexact condition

Ma chuireas sinn an àite a’ chiad charactar anns an 13mh loidhne den macro againn = don ghnìomhaiche geama tuairmseach mar, an uairsin bidh e comasach gluing a dhèanamh le bhith a’ maidseadh an dàta tùsail leis an t-slat-tomhais taghaidh. Mar eisimpleir, ma dh’ fhaodar ainm a’ chompanaidh a sgrìobhadh ann an tionndaidhean eadar-dhealaichte, is urrainn dhuinn an sgrùdadh agus an cruinneachadh le aon ghnìomh:

Ceangal teacsa a rèir staid

Thathas a’ toirt taic do chairtean-fiadhaich àbhaisteach:

  • rionnag (*) - a’ comharrachadh àireamh sam bith de charactaran (a’ gabhail a-steach an neo-làthaireachd)
  • comharra ceist (?) – a’ seasamh airson caractar singilte sam bith
  • soidhne nota (#) - a’ seasamh airson aon fhigear (0-9)

Gu gnàthach, tha an gnìomhaiche Like mothachail air cùisean, ie a’ tuigsinn, mar eisimpleir, “Orion” agus “orion” mar chompanaidhean eadar-dhealaichte. Gus cùis a sheachnadh, faodaidh tu an loidhne a chuir ris aig fìor thoiseach a’ mhodal anns an deasaiche Visual Basic Roghainn Dèan coimeas eadar teacsa, a thionndaidheas Mar a bhith neo-mhothachail air cùisean.

San dòigh seo, faodaidh tu masgaichean gu math iom-fhillte a dhèanamh airson sgrùdadh a dhèanamh air suidheachaidhean, mar eisimpleir:

  • ?1##??777RUS - taghadh de na truinnsearan cead uile ann an roinn 777, a’ tòiseachadh le 1
  • LLC * - a h-uile companaidh aig a bheil ainm a’ tòiseachadh le LLC
  • ##7## - a h-uile toradh le còd didseatach còig-dhigitach, far a bheil an treas figear 7
  • ????? - a h-uile ainm de chòig litrichean, msaa.

Dòigh 3. Gnìomh macro airson teacsa a ghleusadh fo dhà chumha

Anns an obair dh'fhaodadh gum bi duilgheadas ann nuair a dh'fheumas tu an teacsa a cheangal barrachd air aon chumha. Mar eisimpleir, smaoinichidh sinn anns a 'chlàr a bh' againn roimhe, gun deach aon cholbh eile leis a 'bhaile a chur ris, agus bu chòir gluing a dhèanamh chan ann a-mhàin airson companaidh sònraichte, ach cuideachd airson baile sònraichte. Anns a 'chùis seo, feumaidh an obair againn a bhith air ùrachadh beagan le bhith a' cur seic raon eile ris:

Gnìomh MergeIfs (TextRange As Range, SearchRange1 As Range, condition1 As String, SearchRange2 As Range, Condition2 As String) Dim Delimeter As String, i As Long Delimeter = ", " 'caractaran delimiter (faodar àite a chur nan àite no; msaa.) e.) 'Mura bheil na raointean dearbhaidh is gluing co-ionnan ri chèile, falbh le mearachd Ma tha SearchRange1.Count <> TextRange.Count No SearchRange2.Count <> TextRange.Count Then MergeIfs = CVErr(xlErrRef) Cuir crìoch air gnìomh Ma tha 'rach tro na ceallan gu lèir, thoir sùil air a h-uile suidheachadh agus cruinnich an teacsa a-steach don chaochladair OutText For i = 1 Gu SearchRange1.Cells.Count If SearchRange1.Cells(i) = Suidheachadh1 Agus SearchRange2.Cells(i) = Suidheachadh2 An uairsin OutText = OutText & TextRange.Cells(i) & Delimeter End If Next i 'taisbeanadh toraidhean às aonais an delimiter mu dheireadh MergeIfs = Clì (OutText, Len(OutText) - Len(Delimeter)) Gnìomh Deireannach  

Thèid a chur an sàs anns an aon dòigh - chan fheum ach argamaidean a-nis barrachd a shònrachadh:

Ceangal teacsa a rèir staid

Dòigh 4. Buidheannadh agus gluing ann Power Query

Faodaidh tu an duilgheadas fhuasgladh gun phrògramadh ann an VBA, ma chleachdas tu an tuilleadan Power Query an-asgaidh. Airson Excel 2010-2013 faodar a luchdachadh sìos an seo, agus ann an Excel 2016 tha e air a thogail a-steach mar-thà. Bidh sreath nan gnìomhan mar a leanas:

Chan eil fios aig Power Query mar a dh’ obraicheas tu le bùird àbhaisteach, agus mar sin is e a’ chiad cheum ar bòrd a thionndadh gu bhith na fhear “smart”. Gus seo a dhèanamh, tagh e agus brùth am measgachadh Ctrl+T no tagh bhon taba Dachaigh - Cruth mar chlàr (Dachaigh - Cruth mar Clàr). Air an taba a nochdas an uairsin Neach-togail (Dealbhadh) faodaidh tu ainm a’ chlàir a shuidheachadh (dh’ fhàg mi an inbhe Clàr 1):

Ceangal teacsa a rèir staid

A-nis leig dhuinn ar clàr a luchdachadh a-steach don tuilleadan Power Query. Gus seo a dhèanamh, air an taba Dàta (ma tha Excel 2016 agad) no air an tab Power Query (ma tha Excel 2010-2013 agad) cliog Bhon bhòrd (Dàta - Bhon Chlàr):

Ceangal teacsa a rèir staid

Anns an uinneag deasaiche ceist a tha a’ fosgladh, tagh an colbh le bhith a’ briogadh air a’ bhann-cinn Companaidh agus brùth air a’ phutan gu h-àrd Buidheann (Buidheann a-rèir). Cuir a-steach ainm a’ cholbh ùr agus an seòrsa obrachaidh sa bhuidheann - A h-uile sreath (A h-uile sreath):

Ceangal teacsa a rèir staid

Cliog air OK agus gheibh sinn clàr beag de luachan buidhne airson gach companaidh. Tha susbaint nan clàran ri fhaicinn gu soilleir ma dh’ fhàgas tu briogadh air cùl geal nan ceallan (chan ann air an teacsa!) sa cholbh a thig às:

Ceangal teacsa a rèir staid

A-nis cuiridh sinn aon cholbh a bharrachd ris, far am bi sinn, a’ cleachdadh a’ ghnìomh, a’ glaodhaich susbaint nan colbhan Seòladh anns gach aon de na mion-chlàran, air an sgaradh le cromagan. Gus seo a dhèanamh, air an taba Cuir colbh ris bidh sinn a ’brùthadh Colbh gnàthaichte (Cuir colbh ris - Colbh gnàthaichte) agus san uinneig a nochdas, cuir a-steach ainm a’ cholbh ùr agus am foirmle ceangail anns a’ chànan M a chaidh a thogail a-steach do Power Query:

Ceangal teacsa a rèir staid

Thoir an aire gu bheil a h-uile gnìomh M mothachail air cùisean (eu-coltach ri Excel). Às deidh briogadh air OK gheibh sinn colbh ùr le seòlaidhean glaiste:

Ceangal teacsa a rèir staid

Tha e fhathast gus an colbh nach eil riatanach a thoirt air falbh mar-thà Seòlaidhean Clàr (cliog deas air an tiotal) Sguab às colbh) agus luchdaich suas na toraidhean chun na duilleige le bhith a’ cliogadh air an taba Dachaigh - Dùin agus luchdaich sìos (Dachaigh - Dùin is luchdaich):

Ceangal teacsa a rèir staid

Nuance cudromach: Eu-coltach ris na dòighean roimhe (gnìomhan), chan eil clàran bho Power Query air an ùrachadh gu fèin-ghluasadach. Ma bhios atharrachaidhean sam bith anns an dàta stòr san àm ri teachd, feumaidh tu briogadh deas an àite sam bith sa chlàr thoraidhean agus tagh an àithne Ùraich & Sàbhail (Ùraich).

  • Mar a roinneadh sreang teacsa fada gu pàirtean
  • Grunn dhòighean air teacsa a ghluasad bho dhiofar cheallan gu aon
  • A’ cleachdadh a’ ghnìomhaiche Like gus teacsa a dhearbhadh an aghaidh masg

Leave a Reply