• 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.

formule in power query

Status
Niet open voor verdere reacties.

moensk

Gebruiker
Lid geworden
23 jun 2013
Berichten
712
Bijgaande excel laad ik dagelijks in.
Uit de cellen in kolom AT haal ik bepaalde waardes "Kenteken: ...."
dit doe ik nu via een tussenstappen
formule tussenstap =RECHTS(A3;VIND.ALLES("Kenteken:";A3)+1)
definitieve cel =LINKS(B3;VIND.ALLES("Status";B3)-1)
kan dit in power query in 1 kolom ?
 

Bijlagen

  • ritoverzicht.xlsx
    14,2 KB · Weergaven: 9
Gebruik een aangepaste kolom met als Power Query formule:
Code:
=Text.Trim(Text.BeforeDelimiter(Text.AfterDelimiter([#"Tekst-2"], "Kenteken:"), "Status"))
Mag het ook met formules (en gebruik je Excel 365)?
 

Bijlagen

  • ritoverzicht (AC).xlsx
    30,4 KB · Weergaven: 15
Laatst bewerkt:
Een Excel 365 formule dan:
Code:
=SPATIES.WISSEN(TEKST.NA(TEKST.VOOR(AT3;"Status");"Kenteken:"))
N.B. eigenlijk is dit gewoon de M-code in Excel formule-vorm...
 
Laatst bewerkt:
Hallo moensk

Je gebruikt office 365 en het geheel wordt dagelijks ingeladen met power query.
Waarom zou je nu "moeilijk" gaan doen met een formules terwijl de M-code van AlexCEL t.b.v. power query werkt als een tierelier.
M.a.w. inladen, de boel verversen en klaar is moensk.
 
ik ga hem ook gebruiken in de power query
was alleen benieuwd naar formule voor in één cel.
ik zat met links en rechts te werken en formule blijkt dus helemaal anders te zijn :)
 
Het kan ook met RECHTS en LINKS:
Code:
=SPATIES.WISSEN(RECHTS(LINKS(AT3;VIND.SPEC("Status";AT3)-1);VIND.SPEC("Status";AT3)-VIND.SPEC("Kenteken:";AT3)-9))
Maar Excel 365 heeft dus nieuwe functies die dit een beetje gemakkelijker maken...
 
Laatst bewerkt:
kolom AS kan die ook proper gemaakt worden binnen Power Query ?
het gewenste voorbeeld staat in kolom AV
 

Bijlagen

  • ritoverzicht (AC).xlsx
    31,3 KB · Weergaven: 17
Het kan wel opgeknapt worden, maar uitgelijnde kolommen binnen een cel wordt lastig...
 
uitlijnen is niet het belangsrijkste
verwijderen van overtollige gegevens zou al super zijn
 
Met een custom function de huidige kolom aangepast. Maar zou me toch eens afvragen of de data niet beter aangeleverd kan worden

PHP:
(col as text) as  text =>
let
    xList = List.Transform(
                List.Skip(Text.Split(col,"#(lf)"),2), (x)=> 
                    Text.Replace(" "&Text.Trim(x), " 0  ","")
                    ),

    out = Text.Combine(
            List.Accumulate(xList,{}, (s,c)=> 
                s & {Text.Trim(Text.Combine(List.Select(Text.Split(c,"  "), (x)=> x <> "" and not Text.Contains(x,"V 00")),"   "))}
                ),"#(lf)"
             )
in
    out
 

Bijlagen

  • ritoverzicht.xlsx
    31,7 KB · Weergaven: 13
JEC

kan u even kijken waarom hij laatste stap niet doet aub
 

Bijlagen

  • Trailers-avondploeg.xlsx
    27,8 KB · Weergaven: 11
De bron is een lokaal pad. De data krijg ik dus niet te zien.
Maak een tabel van de brondata (harde tekst dus geen verwijzing naar het bestand). Laat daarna de query naar die tabel kijken. Vervolgens kan ik iets doen

Edit:
Je laatste stap bekeken. Daar heb je de verwijzing uit mijn code gepakt. Test het eerst eens zo.

Code:
= Table.ReplaceValue(#"Type gewijzigd1", each [Col045], each F_proper(_[Col045]),Replacer.ReplaceValue,{"Col045"})
 
Laatst bewerkt:
JEC
had het ook juist gevonden waar het aan lag...
maar nog geen tijd gehad om hier aan te passen
doch bedankt voor alle hulp
 
Hoi JEC
ik kom er nu achter dat custom function niet overal werkt
blijkbaar kijkt hij naar de rij die begint met een "0"
doch deze kan ook beginnen met een 5 of een 1
zie foto in bijlage waar het niet goed gaat
is dit nog op te lossen ?

vervolg.jpg

na custom function

vervolg_1.jpg
 
Laatst bewerkt:
Kleine aanpassing in de xList stap

PHP:
(col as text) as  text =>
let
    xList = List.Transform(
                List.Skip(Text.Split(col,"#(lf)"),2), (x)=> 
                    Text.Replace(Text.TrimStart(x,{"0".."9"}), " 0 ","")
                    ),

    out = Text.Combine(
            List.Accumulate(xList,{}, (s,c)=> 
                s & {Text.Trim(Text.Combine(List.Select(Text.Split(c,"  "), (x)=> x <> "" and not Text.Contains(x,"V 00")),"   "))}
                ),"#(lf)"
             )
in
    out
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan