Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Weergeven resultaten 1 tot 15 van 15

Onderwerp: Transponderen en samenvoegen

  1. #1
    Vraag is niet opgelost

    Question Transponderen en samenvoegen

    Ik heb een bestand waar in kolom A een aantal vaartuignamen staan, en kolom B een aantal nummers.
    De vaartuignamen staan er soms dubbel in.

    wat ik nodig heb is:
    Kolom A: Vaartuignaam
    Kolom B-??: nummers

    is het mogelijk om dit redelijk snel te doen met een macro of Powerquery?

    Ik heb een voorbeeld bijgevoegd.
    Bijgevoegde bestanden Bijgevoegde bestanden

  2. #2
    bedoel je zoiets?
    Bijgevoegde bestanden Bijgevoegde bestanden

  3. #3
    Fantastisch, dank je wel, en ook zo snel!!!

  4. #4
    Giga Senior JEC.'s avatar
    Geregistreerd
    27 februari 2019
    Inene wegschrijven:

    Code:
    Sub jec()
     Dim ar, i As Long
     ar = Sheets(1).Cells(1).CurrentRegion
     
     With CreateObject("scripting.dictionary")
       For i = 1 To UBound(ar)
         .Item(ar(i, 1)) = .Item(ar(i, 1)) & IIf(Len(.Item(ar(i, 1))), ", ", "") & ar(i, 2)
       Next
       Sheets(2).Cells(1).Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
      End With
    End Sub
    Voor Power Query is dit de M-Code

    Code:
    let
        Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
        Grp = Table.Group(Source, {"Vaartuig"}, {{"Count", each _, type table [Vaartuig=nullable text, Nummer=nullable text]}}),
        cAdd = Table.AddColumn(Grp, "Custom", each [Count][Nummer]),
        vExt = Table.RemoveColumns(Table.TransformColumns(cAdd, {"Custom", each Text.Combine(List.Transform(_, Text.From), ", "), type text}),{"Count"})
    in
        vExt
    Laatst aangepast door JEC. : 13 mei 2022 om 16:09
    Gr,
    JV

  5. #5
    Giga Honourable Senior Member
    Geregistreerd
    18 juli 2008
    Ook simpel voor insiders met:

    Code:
    =UNIEK(Huidig!A2:A11)
    En:
    Code:
    =ARRAYTOTEXT(FILTER(Huidig!B$2:B$11;Huidig!A$2:A$11=B2))
    Of:
    Code:
    =ARRAYTOTEXT(SORTEREN(FILTER(Huidig!B$2:B$11;Huidig!A$2:A$11=D2);;-1))
    ____________
    Met vriendelijke groet,
    Harry

    Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
    (Grunnegs-Gronings)

  6. #6
    Giga Senior JEC.'s avatar
    Geregistreerd
    27 februari 2019
    ARRAYTOTEXT is gebonden aan regionale instellingen. Bij jou geeft hij waarschijnlijk komma's maar hier puntkomma.
    Is ook al te gebruiken voor niet-insiders.
    Gr,
    JV

  7. #7
    Giga Honourable Senior Member
    Geregistreerd
    18 juli 2008
    Geeft hier ook puntkomma's, maar dat zal vast niet zo interessant zijn door welk scheidingsteken het wordt gescheiden.

    Mooi om te weten dat het nu standaard is; geldt dat voor alle functies die eerst alleen voor insiders waren.
    Mag ik vragen waar je die informatie weghaalt?
    ____________
    Met vriendelijke groet,
    Harry

    Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
    (Grunnegs-Gronings)

  8. #8
    Giga Senior JEC.'s avatar
    Geregistreerd
    27 februari 2019
    Dat zijn alleen degene die als laatst uit zijn gekomen.
    Omdat ik iedere aanpassing de afgelopen twee jaar heb gevolgd, weet ik uit mijn hoofd welke functies voor insiders zijn.

    Op deze site staan ze nog mooi opgesomd
    https://techcommunity.microsoft.com/...el/m-p/3269526
    Gr,
    JV

  9. #9
    Giga Honourable Senior Member
    Geregistreerd
    18 juli 2008
    Dank je.
    ____________
    Met vriendelijke groet,
    Harry

    Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
    (Grunnegs-Gronings)

  10. #10
    Giga Senior JEC.'s avatar
    Geregistreerd
    27 februari 2019
    Hier nog een leuke.
    Als je de =UNIEK(Huidig!A2:A11) in E2 zet en vervolgens deze in F2:

    Code:
    =BYROW(E2#;LAMBDA(r;TEKST.COMBINEREN(", ";;FILTER($B$2:$B$11;$A$2:$A$11=r))))
    Gr,
    JV

  11. #11
    Giga Senior JEC.'s avatar
    Geregistreerd
    27 februari 2019
    Nog mooier, het hele zootje in 1x

    Code:
    =LET(x;UNIEK(A2:A11);KIEZEN({1\2};x;BYROW(x;LAMBDA(r;TEKST.COMBINEREN(", ";;FILTER($B$2:$B$11;$A$2:$A$11=r))))))
    Gr,
    JV

  12. #12
    Giga Honourable Senior Member
    Geregistreerd
    18 juli 2008
    Heel mooi,
    Het sorteert ook echt goed in de tweede kolom van groot naar klein.

    Jammer dat bij veranderingen in het eerste blad de formules niet worden bijgewerkt in tegenstelling van de mijne (frappant).
    ____________
    Met vriendelijke groet,
    Harry

    Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
    (Grunnegs-Gronings)

  13. #13
    Giga Senior JEC.'s avatar
    Geregistreerd
    27 februari 2019
    Bij mij lijkt dat niet het geval te zijn. Wat verander je precies?
    Gr,
    JV

  14. #14
    Giga Honourable Senior Member
    Geregistreerd
    18 juli 2008
    Ik zie het al; je verwijst niet naar het ander blad waar ik de wijzigingen deed.
    Dus dat sorteren van hoog naar laag wat ik dacht is ook niet waar (ik dacht dat het ook mooi gelijk sorteerde).

    De evaluatie van de LAMBDA functie vind ik maar triest (slecht) wil je het voor een eerste keer doorgronden (ongeldig,ongeldig).
    Als je de functie begrijpt is er niets aan de hand.

    Hoe zit dat in jouw Excel?
    ____________
    Met vriendelijke groet,
    Harry

    Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
    (Grunnegs-Gronings)

  15. #15
    Giga Senior JEC.'s avatar
    Geregistreerd
    27 februari 2019
    Klopt, evalueren werkt niet met LET en LAMBDA. De variabelen in de formule krijgen niet direct waarde toegekend. Kan inderdaad soms vervelend zijn…

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 en business

Partners
Sponsoren