Extragere si concatenare itemuri in paranteze
Extragere si concatenare itemuri in paranteze
Buna ziua,
De cateva zile ne confruntam cu o problema.
In coloana A avem ceva de genu'
[C12] xxxxxxxxxxx [A2] xxxxx [A7] xxxxxxxxxxxxxxxxx [B2]
[B4] xxxxxxxxxxxxxxxx [A1] xxxxxxxxxxxxxxx [C3]
[AC11] xxxxxxxxxx [B124] xxxxxxxxxxxxx
Din cate am vazut fiecare rand incepe cu [ urmata de o litera (una sau mai multe), si de cateva cifre (una sau mai multe) si se termina cu ], si nu e musai sa se termine cu un item in paranteze.
in coloana B as dori sa apara
[C12], [A2], [A7], [B2]
[B4], [A1], [C3]
[AC11], [B124]
Am prefera cu formule iar daca nu se poate cu formule, atunci cu un cod VBA.
Multumim.
De cateva zile ne confruntam cu o problema.
In coloana A avem ceva de genu'
[C12] xxxxxxxxxxx [A2] xxxxx [A7] xxxxxxxxxxxxxxxxx [B2]
[B4] xxxxxxxxxxxxxxxx [A1] xxxxxxxxxxxxxxx [C3]
[AC11] xxxxxxxxxx [B124] xxxxxxxxxxxxx
Din cate am vazut fiecare rand incepe cu [ urmata de o litera (una sau mai multe), si de cateva cifre (una sau mai multe) si se termina cu ], si nu e musai sa se termine cu un item in paranteze.
in coloana B as dori sa apara
[C12], [A2], [A7], [B2]
[B4], [A1], [C3]
[AC11], [B124]
Am prefera cu formule iar daca nu se poate cu formule, atunci cu un cod VBA.
Multumim.
Re: Extragere si concatenare itemuri in paranteze
Imi cer scuze in col B ar trebui sa apara doar ce este in paranteze nu si parantezele.
Adica:
C12, A2, A7, B2
B4, A1, C3
AC11, B124
Multumesc.
Adica:
C12, A2, A7, B2
B4, A1, C3
AC11, B124
Multumesc.
Re: Extragere si concatenare itemuri in paranteze
Buna ziua
Atasat aveti spre testare o propunere folosind macro.
Obiectiv: extragerea informatie din fiecare celula din range-ul A2:A4 (a se edita in cod dupa necesitati) a informatiei cuprinsa intre paranteze drepte, valorile fiind separate de o virgula si un spatiu
Am folosit urmatorul cod:
Pentru testare: deschideti fisierul atasat, activati macro/continutul si rulati macro
IP
Atasat aveti spre testare o propunere folosind macro.
Obiectiv: extragerea informatie din fiecare celula din range-ul A2:A4 (a se edita in cod dupa necesitati) a informatiei cuprinsa intre paranteze drepte, valorile fiind separate de o virgula si un spatiu
Am folosit urmatorul cod:
Cod: Selectaţi tot
Sub ExtrageInfo()
'IPP - 14.09.2019
Dim bExt As Boolean
Dim vbResult As Variant
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each c In Range("A2:A4")
For i = 1 To Len(c)
If Mid(c, i, 1) = "[" Then vbExt = True
If Mid(c, i, 1) = "]" Then vbExt = False
If vbExt = True Then
vbResult = vbResult & Mid(c, i, 1)
End If
Next i
vbResult = Mid(vbResult, 2, 1000)
c.Offset(0, 1).Value = Replace(vbResult, "[", ", ")
vbResult = ""
Next c
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
-
- Mesaje: 433
- Membru din: Mar Dec 11, 2018 8:54 pm
Re: Extragere si concatenare itemuri in paranteze
Salut,
Daca te mai intereseaza si o formula, in B2 si trage in jos
=TEXTJOIN(", ";TRUE;FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2;"[";"");"] ";"</b>");" ";"<b>")&"</a>";"//b"))
evident, inlocuieste in formula ";" cu "," daca nu ai setari regionale romanesti.
Spor la treaba.
Daca te mai intereseaza si o formula, in B2 si trage in jos
=TEXTJOIN(", ";TRUE;FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2;"[";"");"] ";"</b>");" ";"<b>")&"</a>";"//b"))
evident, inlocuieste in formula ";" cu "," daca nu ai setari regionale romanesti.
Spor la treaba.
藍
"I fear the day that technology will surpass our human interaction. The world will have a generation of idiots."
Albert Einstein
"I fear the day that technology will surpass our human interaction. The world will have a generation of idiots."
Albert Einstein
-
- Mesaje: 433
- Membru din: Mar Dec 11, 2018 8:54 pm
Re: Extragere si concatenare itemuri in paranteze
......revin
藍
"I fear the day that technology will surpass our human interaction. The world will have a generation of idiots."
Albert Einstein
"I fear the day that technology will surpass our human interaction. The world will have a generation of idiots."
Albert Einstein
-
- Mesaje: 433
- Membru din: Mar Dec 11, 2018 8:54 pm
Re: Extragere si concatenare itemuri in paranteze
UDF daca te intereseaza....
In B1 (presupunand ca datele tale incep din A1) :
=ExtrageDinParanteze(A1)
In B1 (presupunand ca datele tale incep din A1) :
=ExtrageDinParanteze(A1)
Cod: Selectaţi tot
Function ExtrageDinParanteze(Ki As Range) As String
Dim Ka As Variant
Dim K As Long
Ka = Split(Replace(Replace(Ki, "[", "|"), "]", "|"), "|")
For K = 1 To UBound(Ka) Step 2
ExtrageDinParanteze = ExtrageDinParanteze & Ka(K) & ", "
Next K
ExtrageDinParanteze = Left(ExtrageDinParanteze, Len(ExtrageDinParanteze) - 2)
End Function
藍
"I fear the day that technology will surpass our human interaction. The world will have a generation of idiots."
Albert Einstein
"I fear the day that technology will surpass our human interaction. The world will have a generation of idiots."
Albert Einstein
Re: Extragere si concatenare itemuri in paranteze
@ dl.IPP
Codul functioneaza. Multumesc mult.
dl. Indigo-ONE
Ne-am minunat toti de formula propusa. Bineinteles, ca niciunul dintre noi, nu a inteles cum functioneaza nici chiar colegii care lucreaza mult cu excelul. La un moment dat toti am crezut ca este o postare gresita. Si totusi FUNCTIONEAZA !!!!
Multumim si pentru formula si pentru functia UDF data. Evident ca functioneaza.
Multumim din suflet.
Codul functioneaza. Multumesc mult.
dl. Indigo-ONE
Ne-am minunat toti de formula propusa. Bineinteles, ca niciunul dintre noi, nu a inteles cum functioneaza nici chiar colegii care lucreaza mult cu excelul. La un moment dat toti am crezut ca este o postare gresita. Si totusi FUNCTIONEAZA !!!!
Multumim si pentru formula si pentru functia UDF data. Evident ca functioneaza.
Multumim din suflet.
-
- Moderator
- Mesaje: 813
- Membru din: Vin Sep 09, 2011 4:05 pm
- Localitate: Iaşi
Re: Extragere si concatenare itemuri in paranteze
@ Liana,
Pentru diversitate, propun o solutie cu power query si regular expressions, solutie descrisa aici.
In fisierul anexat, textul initial este in tabelul din stanga, tiparul cautat in tabelul din mijloc, iar rezultatul in tabelul din dreapta.
Dupa adaugare text in tabelul din stanga, actualizare rezultate cu Ribbon>Data>Refresh All (sau direct in tabelul de rezultate-Click Dreapta-Refresh)
Pentru diversitate, propun o solutie cu power query si regular expressions, solutie descrisa aici.
In fisierul anexat, textul initial este in tabelul din stanga, tiparul cautat in tabelul din mijloc, iar rezultatul in tabelul din dreapta.
Dupa adaugare text in tabelul din stanga, actualizare rezultate cu Ribbon>Data>Refresh All (sau direct in tabelul de rezultate-Click Dreapta-Refresh)
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Probleme să fie, că soluţii se găsesc...