Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
3 years ago

¡Ayuda! Intentando poner Excel ISNUMBER formual en Power Query M.

Hola

Estoy tratando de poner la siguiente fórmula de Excel en la fórmula M de Power Query y estoy perplejo. Aquí está la fórmula de Excel:

=IFS(ISNUMBER(VALOR(IZQUIERDA(A6,1))),A6,ISNUMBER(VALOR(IZQUIERDA(B6,1))),B6,ISNUMBER(VALOR(IZQUIERDA(C6,1))),C6,ISNUMBER(VALOR(IZQUIERDA(D6,1))),D6,ISNUMBER(IZQUIERDA(E6,1))),E6,ISNUMBER(VALOR(IZQUIERDA(F6,1))),F6,ISNUMBER(VALOR(IZQUIERDA(G6,1))),G6,ISNUMBER(VALOR(IZQUIERDA(H6,1))),H6)

Esta fórmula está comprobando si el primer carácter en el texto de cada una de las celdas es un número (0 a 9) y, si es así, rellene la nueva columna con el contenido de esa celda si el primer carácter del texto es un número. Si la celda comienza con el número, es el "Número de cuenta", que es lo que necesito. Si no es así, muévase para verificar la siguiente columna, hay 9 columnas y cada una debe verificarse ya que el número de cuenta podría estar en la 9ª columna. Vea los datos de muestra a continuación.

Gracias, BJ

2 Replies

  • Aquí hay una mejor muestra de los datos.

    Cuenta Nivel 0Cuenta Nivel 1Cuenta Nivel 2Cuenta Nivel 3Nivel de cuenta 4Nivel de cuenta 5Cuenta Nivel 6Nivel de cuenta 7Nivel de cuenta 8Nivel de cuenta 9Contar Solo cuenta
    T0000 - Todas las cuentas (incl. estadísticas)BS000 - Balance General TotalA0000 - Activos totalesA1000 - Total del Activo Circulante10200 - Valores negociables 1 10200 - Valores negociables
  • let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VcwxCsMwDAXQqwhPLaTg9AZO5k7OFjKoQlAT4YAl3z9OMzT9aPpP/Hl2k2+BBwQRCERbzaZwS5kEoqHp3XVuiOfPtBkKDCiYiSF+mK1p8FcNqmx61P21HmspnO3HvX9++YVlZcO3tEGmWpIlPvzvlmUH", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Acct Level 0" = _t, #"Acct Level 1" = _t, #"Acct Level 2" = _t, #"Acct Level 3" = _t, #"Acct Level 4" = _t, #"Acct Level 5" = _t, #"Acct Level 6" = _t, #"Acct Level 7" = _t, #"Acct Level 8" = _t, #"Acct Level 9" = _t]),
    
        #"Extracted Account" = Table.AddColumn(Source, "Extracted Account", each let l=Record.ToList(_) in l{List.PositionOf(l, {"0".."9"}, 0, (x,y) => List.Contains(y, Text.Start(x,1)))})
    in
        #"Extracted Account"