Coniunctio textus per condicionem

Iam scripseram quomodo textum ex pluribus cellulis in unum celeriter glutinum possis et e e longam chordarum textum in partes dividere. Nunc finem inspiciamus, sed opus paulo magis implicatum - quomodo textum gluten ex pluribus cellulis cum certa quaedam conditio occurrit. 

Dicamus nos habere database clientium, ubi una societas nomen potest respondere pluribus diversis electronicis operariorum eius. Nostrum munus est omnes inscriptiones globatim nominibus colligere et eas concatenare (commatis vel semicolonibus separatis) ut, exempli gratia, album tabellariorum pro clientibus, id est aliquid simile outputo;

Coniunctio textus per condicionem

Aliis verbis opus est instrumento quod textum gluten (link) secundum condicionem - analogum functionis SUMMESLI' (SUIF)sed pro textu.

Modus 0. Formulae

Non perelegans, sed facillimum. Scribere potes simplicem formulam quae reprehendo utrum societas in sequenti ordine a priore differat. Si non differat, proximam inscriptionem a commate separatam conglutinabis. si differat, "reponere" cumulatum, rursus incipiens;

Coniunctio textus per condicionem

Incommoda aditus patentes sunt: ​​ex omnibus cellulis adiectis columnae consecutis, solum ultimae pro singulis societatibus indigemus (flavo). Si index amplus est, tum ut celeriter eas delectes, aliam columnam habebis utens munere DLSTR (LEN)longitudinis iniecta chordarum;

Coniunctio textus per condicionem

Iam ones eliquare potes et inscriptionis necessariam conglutinationem ad ulteriorem usum imitari potes.

Modus 1. Macrofunction conglutinantis uno conditione

Si index primigenius societas non est digestus, praedicta formula simplex non operatur, sed facile circumire potest cum parva consuetudine functionis in VBA. Aperi Visual Basic Editor premendo keyboard brevis Alt + F11 aut per ipsum Visual Basic Tab elit (Developer). In fenestra quod aperit, novum vacui moduli per tabulas inseres Inserere - OMNIBUS et transcribo textum functionis nostrae ibi:

Function MergeIf(TextRange As Range, SearchRange As Range, Condition As String) Dim Delimeter As String, i Tanquam Delimeter = ", "gluings non sunt inter se pares - Eximus errore Si SearchRange.Count <> TextRange.Count Deinde MergeIf = CVErr(xlErrRef) Exit Function End Si 'per omnes cellulas transi, conditionem siste et textum in incerto Outtexto collige Nam i = 1 Ad SearchRange. Cells.Count Si SearchRange.Cells(i) Placet Condition Tunc OutText = OutText & TextRange.Cells(i) & Delimeter Next i 'praestare proventus sine ultimo delimiter MergeIf = Left(OutText, Len(OutText) - Len(Delimeter)) Finem officium  

Si nunc ad Microsoft Praecedo, in indice functionum (button fx in formula talea vel tab Formulae - Insert Function) munus nostrum invenire poterit MergeIf in genus ShadowMenu (User Defined). Argumenta ad munus haec sunt:

Coniunctio textus per condicionem

Modus 2. textus Concatenate ab impropria conditione

Si pro primo charactere in 13th linea nostra tortor = ut proximus par operator sicuttunc poterit explere conglutinationem per impropria par initialis notitiae cum criterio delectu. Exempli gratia, si nomen societatis in diversis variantibus scribi potest, tunc omnes uno munere coercere et colligere possumus;

Coniunctio textus per condicionem

Latin wildcards sustentantur;

  • asteriscus (') - est numerus cuiuslibet characteres (including absentia)
  • quaestio signum (?) - stat pro quolibet uno charactere
  • libra signum (#) - stat pro qualibet una digit (0-9)

Ex defectu, sicut operator est casus sensitivus, id est intelligit, verbi gratia, "Orion" et "orion" sicut diversae societates. Ad casum ignorare, lineam addere potes sub initio moduli in editore Visuali Basic Option Compare Textquod mutabit Insensibilis.

Hoc modo personas implicatas componere potes ad condiciones reprimendas, exempli gratia:

  • ?1##??777RUS - lectio omnium licentiae laminae regionis 777, incipiens a 1
  • Co - omnes societates cuius nomen incipit cum LLC
  • ##7## - omnia producta cum codice digitali quinque digiti, ubi tertius digitus est 7
  • ?????? — Omnia nomina quinque litterarum, etc.

Modus 3. Macroni munus pro textu conglutinando sub duabus conditionibus

In opere quaestio esse potest cum plus quam unam condicionem cum textu coniungi debes. Exempli causa, fingamus in superiori tabula, columnam unam cum urbi additam esse, et non solum ad datam societatem, sed etiam ad datam urbem conglutinationem efferendam esse. In hoc casu, munus nostrum leviter modernisatum erit addendo aliam laxiorem reprimendam;

Function MergeIfs (TextRange As Range, SearchRange1 As Range, Condition1 As String, SearchRange2 As Range, Condition2 As String) Dim Delimeter As String, i Ut Long Delimeter = ", "Delimiter characters (reponi potest cum spatio vel, etc.) e.) 'Si convalidatio et iugis conglutinatio inter se non sunt aequales, cum errore exit Si SearchRange1.Count <> TextRange.Count Or SearchRange2.Count <> TextRange.Count MergeIfs = CVErr(xlErrRef) Exit Function End Si 'Per omnes cellas perge, omnes conditiones compesce et textum in inaequabilem OutText collige For i = 1 Ut SearchRange1.Cells.Count Si SearchRange1.Cells(i) = Condition1 Et SearchRange2.Cells(i) = Condition2 Deinde OutText = OutText & TextRange.Cells(i) & Delimeter Finis Si Sequens i 'praecessi sine ultimo delimiter MergeIfs = Left(OutText, Len(OutText) - Len(Delimeter)) Finis Function  

Eodem prorsus modo applicabitur - nunc solum argumenta plura definienda sunt;

Coniunctio textus per condicionem

Modus 4. Grouping et conglutinat in Power Query

Rem solvere sine programmate in VBA potes, si libera potestate Query uteris addendi in. Pro Praecedo 2010-2013 hic accipi potest, et in Excel 2016 iam in defalta aedificatum est. Ordo actionum talis erit.

Potestas Query nescit laborare cum regularibus tabulis, primus gradus est mensam nostram in unam "dolorem" convertere. Ad hoc fac, elige illud et preme compositionem Ctrl-+T aut eligere ex tab Domum - Forma ut mensam (Domus - Format as Table). In tab quod tunc apparet Constructor (Design) vos can mensam nomine (intermisi vexillum mensam 1):

Coniunctio textus per condicionem

Nunc oneremus mensam nostram in Potentia Query addendi in. Ad hoc faciendum in tab Data (Si Excel 2016) vel in Potentia Query tab (si Praecedo 2010-2013) click De mensa (Indicium - Ex Tabula):

Coniunctio textus per condicionem

In fenestra quaerendi editorem aperientem, columnam elige strepitando in capite vexillum ac premere puga supra Group (Group By). Intrant nomen columnae novae et genus operandi in compage. Omnes lineae (All Rows):

Coniunctio textus per condicionem

Click OK et accipimus mini-menam valorum aggregatorum pro singulis societatibus. Contenta tabularum clare conspicua sunt si in albo involucro cellularum (non super textu) remanseris, in columna inde:

Coniunctio textus per condicionem

Nunc unam insuper columnam addamus, ubi functione adhibita, contenta columnarum inscriptionis in singulis tabulis mini- culis separatis commatibus conglutinamus. Ad hoc faciendum in tab columnae addendi urgemus Consuetudo columnae (Columna Add - Custom column) et in fenestra, quae apparet, nomen novae columnae intrant et formulae iuncturae in lingua M in Potentia Query constructa;

Coniunctio textus per condicionem

Nota quod omnia M-munera sensitiva sunt casus (dissimile Excel). Post clicking in OK novam columnam cum inscriptionibus affixis obtinemus:

Coniunctio textus per condicionem

Reliquum est ut columnae iam necessariae removeantur TableAddresses (Click on title) Delere columnae) et proventus in charta strepitando in tab Home - Close and download (Domus - Close et onus):

Coniunctio textus per condicionem

Maximus nuance: Dissimilis modi praecedentium (munerum), tabulae a Power Query non renovatae sunt automatice. Si in posterum aliquae mutationes in fonte datae erunt, tum opus erit ut usquam in tabula proventuum cliccum ius ac mandatum eligat. Update & Servare (Renovare).

  • Quomodo scindendum longum textum filum in partes
  • Pluribus modis textum glutinum ex diversis cellulis in unum
  • Usus est velut operator ad probandum textum contra larvam

Leave a Reply