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

PQ weergeven laatste prijs aan de hand van datum

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Goedemiddag,

Ik heb een tabel, waar ik geboekte document regels heb.
Nu wil ik aan de hand van het artikelnummer, de laatste datum van inkoop en daar dan het bedrag van inkoop laten zien.
Aangezien dit een deel van een PQ is heb ik deze even verkleind naar dit voorbeeld om zo straks de PQ in mijn oorspronkeleijke bestand te gebruiken.
Ik weet de beginselen van PQ maar hoe ik moet zoeken naar deze waardes uit de verschillende kolommen is voor mij een raadsel.
Is dit wel mogelijk via PQ

In het werkblad heb ik een voorbeeld staan wat het eindresultaat zou moeten zijn.

Alvast dank voor de genomen moeite,

Henk
 

Bijlagen

Hallo,

Misschien zoiets?
Snel met power query in elkaar gestoken.
Het kan nog veel fraaier en mooier kijk eerst maar eens of dit een beetje aan je verwachtingen voldoet.
 

Bijlagen

@Peter, ik gok dat het de bedoeling is om geen gebruik te maken van de aangegeven resultaten tabel ;)

Dit is voldoende met alleen de verwijzing naar de grote tabel

Code:
let
    Source = Excel.CurrentWorkbook(){[Name="Tabel1"]}[Content],
    delCols = Table.SelectColumns(Source,{"Nr.", "Omschrijving", "Eenheidsprijs", "Boekingsdatum"}),
    grp = Table.Group(delCols, {"Nr."}, {{"Boekingsdatum_", each List.Max([Boekingsdatum]), type nullable datetime}})
in
    grp
 
Laatst bewerkt:
@JEC

De query van jou had ik ook maar dan gegroepeerd op "Omschrijving" en "Boekingsdatum".
Eigenlijk ben ik hierna uitgegaan van het tabelletje wat de eigenlijke lay-out diende te zijn.
Dus TS is nu aan zet.
 
Ik zie inderdaad dat er nog twee kolommen bij moesten

Code:
let
    Source = Excel.CurrentWorkbook(){[Name="Tabel1"]}[Content],
    delCols = Table.SelectColumns(Source,{"Nr.", "Omschrijving", "Eenheidsprijs", "Boekingsdatum"}),
    sort = Table.Sort(delCols,{{"Boekingsdatum", Order.Ascending}}),
    grp = Table.Group(sort, {"Nr.", "Omschrijving"}, {{"Eenheidsprijs", each List.Last([Eenheidsprijs])},{"Boekingsdatum_", each List.Last([Boekingsdatum])}})
in
    grp
 
@Jec

Mooi gedaan. Je hebt gesorteerd en hierna de "List.Last" gebruikt.
Zelf was ik nog aan het klooien met "List.Max".
Ik heb weer wat geleerd.
Nu ff wachten wat TS er van vindt.
 
Waarschijnlijk probeerde je aan de hand van de laatste datum de bijbehorende prijs te vinden :D
 
Je mag niet meer raden.:thumb:
 
Dat doe je dan zo. Zonder sorteren

Code:
let
    Source = Excel.CurrentWorkbook(){[Name="Tabel1"]}[Content],
    delCols = Table.SelectColumns(Source,{"Nr.", "Omschrijving", "Eenheidsprijs", "Boekingsdatum"}),
    grp = Table.Group(delCols, {"Nr.", "Omschrijving"}, {{"Eenheidsprijs", each  let tbl =_ in Table.SelectRows(tbl, each [Boekingsdatum] = List.Max(tbl[Boekingsdatum]))}}),
    exp = Table.ExpandTableColumn(grp, "Eenheidsprijs", {"Eenheidsprijs", "Boekingsdatum"})
in
    exp
 
Laatst bewerkt:
wat een hulp

Beste,

Ik was te nieuwsgierig om dit tot morgen te laten wachten, en om wat van mij te laten horen.
De code gelijk in mijn orginele besdtand toegepast, en doet wat het moet doen.
Verschillende handmatige testen gedaan en allemaal positiefe uitkomst, dus ben er erg content mee.
Ik zal morgen als ik iets meer tijd heb, de code proberen te ontcijferen om het te snappen wat hij stap voor stap doet.

Voor nu allemaal dank voor de inzet.

Groet Henk
 
Mooizo! Succes:)
 
En ik heb ook weer wat geleerd.

@JEC
De laatste query werkt ook perfect.
Maar dat had je van HWV al begrepen.
 
Aanvullende vraag

Ik heb zoals gezegd het bestand in mijn orginele bestand verwerkt.
Ik heb er wel een kolom met aantal bijgezet, aangezien ik deze ook nog nodig had.
Hier zit ook tevens nu mijn probleem.

Als ik deze nu bekijkt, heb ik twee regels die het zelfde zijn, enkel de aantallen zijn anders.
Dus in onze inkoop zijn dit 2 regels geweest, omdat die in 2 keer is binnengekomen.

Wat ik zou willen is als dit het geval is dat hij de regels vergelijk, en als die het zelfde zijn dat hij de aantallen opteld.

Voorbeeld:

Nr. Omschrijving Eenheidsprijs Boekingsdatum Aantal
FRUI5202 OMSCHRIJVING 1 € 0,0056 3-1-2023 264.000
FRUI5202 OMSCHRIJVING 1 € 0,0056 3-1-2023 150.000

Hoe het moet worden
Nr. Omschrijving Eenheidsprijs Boekingsdatum Aantal
FRUI5202 OMSCHRIJVING 1 € 0,0056 3-1-2023 414.000

Is dit nog mogelijk, alvast dank.

Groet Henk

ps.

Ik heb hier nu de volgende regel aan toegevoegd, wat nu goed lijkt te gaan omdat hij de rij combineerd als die het zelfde zijn;
Code:
    #"Rijen gegroepeerd" = Table.Group(#"Dubbele waarden verwijderd", {"Nr.", "Omschrijving", "Eenheidsprijs", "Boekingsdatum"}, {{"Aantal-combi", each List.Sum([Aantal]), type number}})
Tevens in het voorbeeld bestand aangepast!
 

Bijlagen

Laatst bewerkt:
Hier nog een andere variant

Code:
let
    Source = Excel.CurrentWorkbook(){[Name="Tabel1"]}[Content],
    delCols = Table.SelectColumns(Source,{"Nr.", "Omschrijving", "Eenheidsprijs", "Boekingsdatum", "Aantal"}),
    grp = Table.Group(delCols, {"Nr.", "Omschrijving"}, {{"Eenheidsprijs", each  let tbl =_ in Table.SelectRows(tbl, each [Boekingsdatum] = List.Max(tbl[Boekingsdatum]))}}),
    exp = Table.AggregateTableColumn(grp, "Eenheidsprijs", {{"Eenheidsprijs", List.First, "Eenheidsprijs"}, {"Boekingsdatum", List.First, "Boekingsdatum"}, {"Aantal", List.Sum, "Aantal"}}),
    cType = Table.TransformColumnTypes(exp,{{"Boekingsdatum", type date}})
in
    cType
 
JEC,

Ook deze doet het weer goed :thumb::thumb:

Henk
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan