es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cambiar el tipo de cada columna dependiendo del criterio.

Me gustaría cambiar el tipo de las columnas a tipo número bajo una de dos condiciones (la que sea más conveniente): (1) cada columna excepto la primera columna o (2) cada columna cuyo encabezado de columna sea distinto al término Balance Sheet.

Aquí está mi código que aborda las opciones (1) y (2):

let
sourcepath=Excel.CurrentWorkbook(){[Name="rngpath"]}[Content]{0}[Column1],
tickername=Excel.CurrentWorkbook(){[Name="rngticker"]}[Content]{0}[Column1],
Quelle = Excel.Workbook(File.Contents(sourcepath & "\" & tickername & "\balance sheet.xlsx"), null, true),

"Sheet 1_Sheet" = Quelle{[Item="Sheet 1",Kind="Sheet"]}[Data],

"Entfernte oberste Zeilen" = Table.Skip(#"Sheet 1_Sheet",1),

"Höher gestufte Header" = Table.PromoteHeaders(#"Entfernte oberste Zeilen", [PromoteAllScalars=true]),

//opción (1)

"Geänderter Typ" = Table.TransformColumnTypes(#"Höher gestufte Header", List.Transform(Table.ColumnNames(#"Höher gestufte Header"), each {_, type number})),

//opción (2)

"Geänderter Typ" = Table.TransformColumnTypes(#"Höher gestufte Header", List.Transform(Table.ColumnNames(#"Höher gestufte Header"), each {_, each if Table.ColumnNames(#"Höher gestufte Header") <> "Balance Sheet" then type number else type text})),

"Entfernte leere Zeilen" = Table.SelectRows(#"Geänderter Typ", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null})))

in

"Entfernte leere Zeilen"
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para cambiar el tipo de columnas a tipo número bajo la condición (1) donde se selecciona cada columna excepto la primera columna:

    Table.TransformColumnTypes(#"Höher gestufte Header", List.Transform(List.Skip(Table.ColumnNames(#"Höher gestufte Header")), each {_, type number}))

    Para cambiar el tipo de columnas a tipo número bajo la condición (2) donde se selecciona cada columna cuyo encabezado de columna es diferente al término Balance Sheet:

    Table.TransformColumnTypes(#"Höher gestufte Header", List.Transform(Table.ColumnNames(#"Höher gestufte Header"), each if _ <> "Balance Sheet" then {_, type number} else {_}))

Comments are closed.