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

Power query - waarde vervangen met voorwaarde

moensk

Gebruiker
Lid geworden
23 jun 2013
Berichten
800
Heb klein voorbeeld gemaakt
ik wil de waarde vervangen in een kolom (Loskey) door die van "Laadkey" als die waarde voldoet aan 2 voorwaarden
doch hij mag dit enkel doen voor de rij "Type = Laden"
1. De "RITID" moet zelfde zijn
2. de "Loskey" en "laadkey" moet zelfde zijn
 

Bijlagen

Ik denk dat dit al aardig in de buurt komt.
Ben benieuwd of het ook gaat werken in je echte bestand.
 

Bijlagen

wou deze code gebruiken doch krijg error wegens type

Code:
= Table.TransformColumns(
    #"Type gewijzigd",
    { "Loskey", each if [Type] = "Laden" and [Loskey] = [Laadkey] then [Laadkey] else _ }
)
 
Die krijg je nooit werkend.
Wat dacht je van Table.AddColumn?
 
Dit kan wel met table.replacevalue, zonder nieuwe kolom toe te voegen
 
Laatst bewerkt:
wat is er fout aan deze formule ?

Code:
= Table.ReplaceValue(#"Type gewijzigd",
    each [Loskey], each [Laadkey],               
    (old, new, row) =>           
        if row[Type] = "Laden" and row[Loskey] = row[Laadkey]
        then new
        else old,
    {"Loskey"})
 
Gebruik deze en verwijder daarna de overbodige kolommen.
Dat lijkt mij het eenvoudigst en goed leesbaar.
Code:
= Table.AddColumn(
    #"Type gewijzigd",
    "Loskey_Nieuw",
    each if [Type] = "Laden" and [Loskey] = [Laadkey]
         then [Laadkey]
         else [Loskey],
    type text
)
 
Volgens mij kom je er niet eens met deze logica. Je wil een regel met een andere regel vergelijken. Dat gaat niet op deze manieren.
 
Helemaal mee eens. Ik heb eigenlijk geen idee wat @moensk probeert te bereiken.
 
Mogelijk voldoet dit

PHP:
let
    Source = Excel.CurrentWorkbook(){[Name="Tabel1"]}[Content],
    result =
    Table.ReplaceValue(Source,
        each [Loskey],
        each try Source[Loskey]{List.PositionOf(Source[Loskey],[Laadkey])} otherwise [Loskey],Replacer.ReplaceText,{"Loskey"})
in
    result
Bericht automatisch samengevoegd:

Iets beter met een buffer;

PHP:
let
    Source = Excel.CurrentWorkbook(){[Name="Tabel1"]}[Content],
    sList = List.Buffer(Source[Loskey]),
    result =
    Table.ReplaceValue(Source,
        each [Loskey],
        each try sList{List.PositionOf(sList,[Laadkey])} otherwise [Loskey],Replacer.ReplaceText,{"Loskey"})
in
    result
 
@JEC.
Dat is de Query welke Moensk nodig heeft.
 
Terug
Bovenaan Onderaan