• 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 number ipv text in formule

moensk

Gebruiker
Lid geworden
23 jun 2013
Berichten
847
hieronder script dat ik gebruik voor groeperen
dit werkt uitstekend voor tekst doch nu wil ik het in een ander script gebruiken maar de kolom eigenschap van "Bedrag" is number en dan werkt het niet.
zou het kunnen oplossen om eerst naar text te zetten en nadien terug naar number maar misschien is er nettere oplossing ?

Code:
Groeperen = Table.Group(
    Ren_Kol,
    {
      "OPDRACHT", 
      "SRT",
      "REFERENTIE",
      "LOSNAAM",
      "POSTCODE",
      "LOSPLAATS",
      "LAND", 
      "PP"
    },
    {{"BEDRAG", each Text.Combine([BEDRAG], ";")}, {"SAMEN", each List.First([SAMEN])}}
  ),
  Xmaxlist = List.Transform(
    {
      1 .. List.Max(
        Table.AddColumn(
          Groeperen,
          "Custom",
          each List.Count(Text.PositionOfAny([BEDRAG], {";"}, Occurrence.All))
        )[Custom]
      )
        + 1
    },
    each "BEDRAG_" & Text.From(_)
  ),
  Split_Tarieftype = Table.SplitColumn(
    Groeperen,
    "BEDRAG",
    Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv),
    Xmaxlist
  )
 
Kijk of dit helpt.
Vergeet niet om bij een eventuele volgende stap het gedeelte "Split_Tarieftype" te vervangen door "Converteer_Naar_Number".

Code:
Groeperen = Table.Group(
    Ren_Kol,
    {
      "OPDRACHT",
      "SRT",
      "REFERENTIE",
      "LOSNAAM",
      "POSTCODE",
      "LOSPLAATS",
      "LAND",
      "PP"
    },
    {
      {"BEDRAG", each Text.Combine(List.Transform([BEDRAG], Text.From), ";")},
      {"SAMEN", each List.First([SAMEN])}
    }
  ),

  Xmaxlist = List.Transform(
    {
      1 .. List.Max(
        Table.AddColumn(
          Groeperen,
          "Custom",
          each List.Count(Text.PositionOfAny([BEDRAG], {";"}, Occurrence.All))
        )[Custom]
      )
        + 1
    },
    each "BEDRAG_" & Text.From(_)
  ),

  Split_Tarieftype = Table.SplitColumn(
    Groeperen,
    "BEDRAG",
    Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv),
    Xmaxlist
  ),

  Converteer_Naar_Number = Table.TransformColumns(
    Split_Tarieftype,
    List.Transform(
      Xmaxlist,
      each {_, each if _ = null then null else Number.From(_), type number}
    )
  )
 
extra vraag
ik wil ook een kolom toevoegen met de som van de bedragen
doch door Xmaxlist kan het aantal kolommen veranderen.
hoe dit op te lossen ?
 
Misschien op deze manier?
Voeg deze stap toe na de stap "Converteer_Naar_Number".
Houd er ook weer rekening mee dat je eventuele opvolgende stappen ook iets moet aanpassen.
Code:
Totaal = Table.AddColumn(
    Converteer_Naar_Number,
    "TOTAAL BEDRAG",
    each List.Sum(List.Transform(Xmaxlist, (kolom) => Record.Field(_, kolom)))
  )
 
Terug
Bovenaan Onderaan