Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Weergeven resultaten 1 tot 17 van 17

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

  1. #1
    Senior Member
    Geregistreerd
    15 december 2012
    Vraag is niet opgelost

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

    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!!

  2. #2
    Giga Senior JVeer's avatar
    Geregistreerd
    27 februari 2019
    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;""))
    Gr,
    JV

  3. #3
    Senior Member
    Geregistreerd
    15 december 2012
    Quote Origineel gepost door JVeer Bekijk Bericht
    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.


    Bijlage 358666
    Bijgevoegde kleine afbeeldingen Bijgevoegde kleine afbeeldingen Klik op afbeelding voor grotere versie

Naam:  SnagIt-20072021 140615.png‎
Bekeken: 7
Grootte:  93,2 KB  
    Laatst aangepast door hmwul : 20 juli 2021 om 14:45

  4. #4
    Zo?
    Bijgevoegde bestanden Bijgevoegde bestanden

  5. #5
    Giga Senior JVeer's avatar
    Geregistreerd
    27 februari 2019
    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
    Laatst aangepast door JVeer : 20 juli 2021 om 14:52
    Gr,
    JV

  6. #6
    Senior Member
    Geregistreerd
    15 december 2012
    Sorry, ik pakte de verkeerde knop om bijlange toe te voegen.
    Tippel er iedere keer weer in....

  7. #7
    Giga Senior cow18's avatar
    Geregistreerd
    24 mei 2008
    Locatie
    Alveringem, België
    @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 ... .

  8. #8
    Giga Senior JVeer's avatar
    Geregistreerd
    27 februari 2019
    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 aangepast door JVeer : 20 juli 2021 om 15:14
    Gr,
    JV

  9. #9
    Senior Member
    Geregistreerd
    15 december 2012
    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.

  10. #10
    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;""))

  11. #11
    Giga Senior JVeer's avatar
    Geregistreerd
    27 februari 2019
    Werkt het in mijn bijlage ook niet?
    Gr,
    JV

  12. #12
    Giga Senior cow18's avatar
    Geregistreerd
    24 mei 2008
    Locatie
    Alveringem, België
    @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.
    Laatst aangepast door cow18 : 20 juli 2021 om 15:28

  13. #13
    Senior Member
    Geregistreerd
    15 december 2012
    Gevonden!


    Mijn excuses, mijn fout!

    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!
    Bijgevoegde kleine afbeeldingen Bijgevoegde kleine afbeeldingen Klik op afbeelding voor grotere versie

Naam:  m-sorry.gif‎
Bekeken: 7
Grootte:  6,8 KB  

  14. #14
    Giga Senior JVeer's avatar
    Geregistreerd
    27 februari 2019
    Mooizo
    @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.
    Gr,
    JV

  15. #15
    Senior Member
    Geregistreerd
    15 december 2012
    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..?

  16. #16
    Mega Honourable Senior Member AlexCEL's avatar
    Geregistreerd
    3 april 2014
    Locatie
    Groningen
    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 aangepast door AlexCEL : 24 juli 2021 om 14:05
    -- een (excel) voorbeeldbestandje zegt meer dan 1000 woorden --

  17. #17
    Senior Member
    Geregistreerd
    15 december 2012
    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!

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren