• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Cellen (rijen) in kolom B samenvoegen, op basis van gelijke waarden in kolom A

Status
Niet open voor verdere reacties.

hmwul

Gebruiker
Lid geworden
15 dec 2012
Berichten
430
Stel je hebt in kolom A een rij datums staan en in kolom B activiteiten.
Soms 1 activiteit per dag, soms meerdere.
Wanneer er meerdere activiteiten per dag zijn wil je die samenvoegen naar 1 cel, komma gescheiden en de rijen waarvan de activeiten zijn samengevoegd wissen.

Datum
01-01-2021 Activeit 1
01-01-2021 Activeit 2
01-01-2021 Activeit 3
01-01-2021 Activeit 4
05-01-2021 Activeit 1
07-01-2021 Activeit 1
09-01-2021 Activeit 1
09-01-2021 Activeit 2
09-01-2021 Activeit 3

wordt
01-01-2021 Activiteit 1, Activiteit 2, Activitiet 3, Activiteit 4
05-01-2021 Activiteit 1
07-01-2021 Activiteit 1
09-01-2021 Activiteit 1, Activiteit 2, Activitiet 3

Het is een schier eindeloze (tevens slaapverwekkende) hoeveelheid 'klik-werk'

Bestaat hiervoor geen makro?

Bijgaand bestaan
tab 1 bron
tab 2 (backup)
tab 3 hoe het zou moeten worden (stap voor stap)

Dank!!
 

Bijlagen

  • Testbestand Samenvoegen rijen in kolom 1 op basis van gelijke waarden in andere kolom.xlsx
    13,5 KB · Weergaven: 22
Voor office 365:

In A2 van tabblad 3:
Code:
=UNIQUE(Bron!A2:A60)

In B2 en doortrekken naar beneden:
Code:
=TEXTJOIN(",";TRUE;FILTER(Bron!$B$2:$B$60;Bron!$A$2:$A$60=Resultaat!$A2;""))
 
Voor office 365:

In A2 van tabblad 3:
Code:
=UNIQUE(Bron!A2:A60)

In B2 en doortrekken naar beneden:
Code:
=TEXTJOIN(",";TRUE;FILTER(Bron!$B$2:$B$60;Bron!$A$2:$A$60=Resultaat!$A2;""))


Hartelijk dank voor de snelle reactie!
Ik heb het uitgeprobeerd, maar krijg in kolom B gelijke waarden.
Mogelijk doe ik iets verkeerd?

De bedoeling is dus dat per dag de activiteiten samengevat worden van die dag.


Bekijk bijlage 358666
 

Bijlagen

  • SnagIt-20072021 140615.png
    SnagIt-20072021 140615.png
    93,2 KB · Weergaven: 14
Laatst bewerkt:
Zo?
 

Bijlagen

  • Samenvoegen rijen in kolom.xlsm
    24,5 KB · Weergaven: 26
De bijlage is ongeldig. Probeer de bijlage toe te voegen net als de eerste bijlage.
Met een macro:

Code:
Sub jvr()
  jv = Sheets(1).Cells(1).CurrentRegion
    With CreateObject("scripting.dictionary")
         For i = 2 To UBound(jv)
             .Item(jv(i, 1)) = .Item(jv(i, 1)) & IIf(.exists(jv(i, 1)), ",", "") & jv(i, 2)
         Next
        Sheets(1).Cells(2, 4).Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
    End With
End Sub
 

Bijlagen

  • Testbestand Samenvoegen rijen in kolom 1 op basis van gelijke waarden in andere kolom.xlsm
    24,6 KB · Weergaven: 22
Laatst bewerkt:
Sorry, ik pakte de verkeerde knop om bijlange toe te voegen.
Tippel er iedere keer weer in....:eek:
 
@JV, macro loopt mogelijks tegen bepaalde beperkingen aan.
- Die Transpose doet soms wel, soms niet gek vanaf 16.000 unique records in je dictionary.
- ook binnen een item moet je de lengte afblokken op max 255, anders ... .
 
Lengte groter dan 255 gaat hier goed in office 365.
Die andere kan een issue worden als het een hele grote lijst is. Volgens mij ging transpose pas mis tussen de 25000 en 30000 keys?

Edit: zojuist aantal keer getest met 40000 unieke waarden. Gaat telkens goed. Waardoor het soms misgaat met veel data is mij ook nog niet duidelijk.
 
Laatst bewerkt:
Ik vond die functies Unique en Textjoin prachtig. Echt jammer dat het niet helemaal werkt. Zoals gezegd, misschien doe ik iets verkeerd hoor...
Heb geen verstand van macros, vandaar dat ik een functie prefereer.
Macros: geen idee wat het doet en wanneer tabbladen of bestandsnamen wijzigen,
of de macro het nog steeds doet.
Daarnaast moet ik ook gaan rommelen in mijn personal.xlsb en blijft het afwachten of die daarna nog werkt.
Ik geef direct toe: dat ligt aan mijn beperkte Excel kennis, buiten kijf.
 
Ik heb geen 365, als pensionada ga ik die ook niet meer aanschaffen.
Heeft het niets te maken met de vertaling?
Code:
=UNIEK(Bron!A2:A60)
=TEKST.COMBINEREN(",";WAAR;FILTER(Bron!$B$2:$B$60;Bron!$A$2:$A$60=Resultaat!$A2;""))
 
Werkt het in mijn bijlage ook niet?
 
@JV, inderdaad geen fout op 255 in excel365, wel op 32.768 !
Alhoewel, ik moet toegeven, voor die limiet te bereiken zou er al veel moeten gebeuren.

Die andere limiet op 16.000, daar durf ik mijn hand niet voor in het vuur steken, soms gaat het lekker tot 64.000, soms gaat het al mis bij 16.000.
Dus vermijd ik die transpose door die array in de items.
 

Bijlagen

  • Testbestand Samenvoegen rijen in kolom 1 op basis van gelijke waarden in andere kolom.xlsm
    706,9 KB · Weergaven: 25
Laatst bewerkt:
Gevonden!


Mijn excuses, mijn fout!:eek::eek:

Tsk tsk tsk ...
Had liever ergens in een hoekje van de kamer me diep zitten schamen, maar moet ermee voor de dag komen,
anders blijft 't onopgelost.

Ik ging de formule punt voor punt bekijken en zag aan het eind het woord 'Resultaat' staan.
Omdat ik in 1e instantie het tabblad Resultaat ongemoeid wilde laten, copy paste ik de handel in een nieuw tabblad....

Het werkt perfect in tab 'Resultaat'.

Heel hartelijk dank!
 

Bijlagen

  • m-sorry.gif
    m-sorry.gif
    6,8 KB · Weergaven: 11
Mooizo:thumb:
@Cow, ik lees net iets over 16384 kolommen of 65536 rijen als limiet voor transpose.
Toch lijkt het bij mij soms ook al eerder mis te gaan(onder de 65000 rijen), net als bij jou. Blijft apart.
 
Sta mij toe nog een keer hierop terug te komen. Het werkt perfect! Dat op de eerste plaats.
De oplossing is basis van het samenvoegen van 1 kolom.
In het Excelbestand in tab 'Resultaat' in
A2 UNIQUE(Bron!A2:A60)
B2 TEXTJOIN(",";TRUE;FILTER(Bron!$B$2:$B$60;Bron!$A$2:$A$60=Resultaat!$A2;""))

Stel dat 'Bron' als volgt is


Datum Code Art Informatie
14-10-2014 AA XY6 Dit is regel 1.
29-07-2015 AZ XY8 Dit is regel 1.
29-07-2015 AZ XY11 Dit is regel 2.
29-07-2015 BB XY15 Dit is regel 3.
29-07-2015 BB XY16 Dit is regel 4.
29-07-2015 AZ XY36 Dit is regel 5.
29-07-2015 AZ XY33 Dit is regel 6.
29-07-2015 FG XY13 Dit is regel 7.
21-08-2015 FG XY41 Dit is regel 1.
21-08-2015 AZ XY48 Dit is regel 2.
21-08-2015 HJ XY25 Dit is regel 3.


en ik wil code en art ook samenvoegen naar 1 cel, m.a.w. in Resultaat komt te staan:

A2 : 14-10-2014
B2: AA, XY6, Dit is regel 1.

geprobeerd met
TEXTJOIN(",";TRUE;FILTER(Bron!$B$2:$B$60;Bron!$c$2:$c$60;Bron!$d$2:$d$60;Bron!$A$2:$A$60=Resultaat!$A2;""))

maar kreeg iets met too many arguments.

anders wordt het vermoedelijk iets van:

B2: =TEXTJOIN(",";TRUE;FILTER(Bron!$B$2:$B$60;Bron!$A$2:$A$60=Resultaat!$A2;""))
C2: =TEXTJOIN(",";TRUE;FILTER(Bron!$C$2:$C$60;Bron!$A$2:$A$60=Resultaat!$A2;""))
D2: =TEXTJOIN(",";TRUE;FILTER(Bron!$D$2:$D$60;Bron!$A$2:$A$60=Resultaat!$A2;""))

en dan samenvoegen in E2
E2: =B2&", "&C2&", "&D2

Of zoiets..?
 

Bijlagen

  • Testbestand Samenvoegen rijen in kolom 1 op basis van gelijke waarden in andere kolom - Copy.xlsx
    17,9 KB · Weergaven: 20
Waarom niet in 1x samenvoegen?
Code:
=TEKST.COMBINEREN(", ";WAAR;FILTER(Bron!$B$2:$B$60;Bron!$A$2:$A$60=Resultaat!$A2;"");FILTER(Bron!$C$2:$C$60;Bron!$A$2:$A$60=Resultaat!$A2;"");FILTER(Bron!$D$2:$D$60;Bron!$A$2:$A$60=Resultaat!$A2;""))
Of misschien zo?
Code:
=TEKST.COMBINEREN(", ";WAAR;FILTER(KIEZEN({1\2\3};Bron!$B$2:$B$60;Bron!$C$2:$C$60;Bron!$D$2:$D$60);Bron!$A$2:$A$60=Resultaat!$A2;""))
 
Laatst bewerkt:
Grandioos!

Heel hartelijk dank.

Ik heb 'm even door de translator gehaald op https://en.excel-translator.de/translator/
Handige site...

Code:
=TEXTJOIN(", ";TRUE;FILTER(Bron!$B$2:$B$60;Bron!$A$2:$A$60=Resultaat!$A3;"");FILTER(Bron!$C$2:$C$60;Bron!$A$2:$A$60=Resultaat!$A3;"");FILTER(Bron!$D$2:$D$60;Bron!$A$2:$A$60=Resultaat!$A3;""))

Werkt perfect.
Zelf niet kunnen verzinnen.

Nogmaals dank!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan