Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago

Sentencia IF OR anidada en Power Query

Hola

Solo me pregunto si alguien podría ayudar con un error que estoy recibiendo de mi instrucción IF / OR de Power Query debajo de la cual estoy usando para obtener tiempos en un bucket de tiempo dentro de una columna personalizada.

Sigo recibiendo un token Entonces el mensaje de error esperado en la parte inferior y dentro de la primera línea entre el primer dos puntos y el segundo conjunto de 00s por ejemplo el subrayado rojo aparece aquí 00:00:00

=if [#"ReceievedDate - Time"] => 00:00:00 or 
[#"ReceievedDate - Time"] =< 01:00:00 
then 00:00 - 01:00

else 
if [#"ReceievedDate - Time"] => 01:00:00 or 
[#"ReceievedDate - Time"] =< 02:00:00 
then 01:00 - 02:00

else 
if [#"ReceievedDate - Time"] => 02:00:00 or 
[#"ReceievedDate - Time"] =< 03:00:00 
then 02:00 - 03:00

else 
if [#"ReceievedDate - Time"] => 03:00:00 or 
[#"ReceievedDate - Time"] =< 04:00:00 
then 03:00 - 04:00

else 
if [#"ReceievedDate - Time"] => 04:00:00 or 
[#"ReceievedDate - Time"] =< 05:00:00 
then 04:00 - 05:00

else 
if [#"ReceievedDate - Time"] => 05:00:00 or 
[#"ReceievedDate - Time"] =< 06:00:00 
then 05:00 - 06:00

else 
if [#"ReceievedDate - Time"] => 06:00:00 or 
[#"ReceievedDate - Time"] =< 07:00:00 
then 06:00 - 07:00

else 
if [#"ReceievedDate - Time"] => 07:00:00 or 
[#"ReceievedDate - Time"] =< 08:00:00 
then 07:00 - 08:00

else 
if [#"ReceievedDate - Time"] => 08:00:00 or 
[#"ReceievedDate - Time"] =< 09:00:00 
then 08:00 - 09:00

else 
if [#"ReceievedDate - Time"] => 09:00:00 or 
[#"ReceievedDate - Time"] =< 10:00:00 
then 09:00 - 10:00

else 
if [#"ReceievedDate - Time"] => 10:00:00 or 
[#"ReceievedDate - Time"] =< 11:00:00 
then 10:00 - 11:00

else 
if [#"ReceievedDate - Time"] => 11:00:00 or 
[#"ReceievedDate - Time"] =< 12:00:00 
then 11:00 - 12:00

else 
if [#"ReceievedDate - Time"] => 12:00:00 or 
[#"ReceievedDate - Time"] =< 13:00:00 
then 12:00 - 13:00

else 
if [#"ReceievedDate - Time"] => 13:00:00 or 
[#"ReceievedDate - Time"] =< 14:00:00 
then 13:00 - 14:00

else 
if [#"ReceievedDate - Time"] => 14:00:00 or 
[#"ReceievedDate - Time"] =< 15:00:00 
then 14:00 - 15:00

else 
if [#"ReceievedDate - Time"] => 15:00:00 or 
[#"ReceievedDate - Time"] =< 16:00:00 
then 15:00 - 16:00

else 
if [#"ReceievedDate - Time"] => 16:00:00 or 
[#"ReceievedDate - Time"] =< 17:00:00 
then 16:00 - 17:00

else 
if [#"ReceievedDate - Time"] => 17:00:00 or 
[#"ReceievedDate - Time"] =< 18:00:00 
then 17:00 - 18:00

else 
if [#"ReceievedDate - Time"] => 18:00:00 or 
[#"ReceievedDate - Time"] =< 19:00:00 
then 18:00 - 19:00

else 
if [#"ReceievedDate - Time"] => 19:00:00 or 
[#"ReceievedDate - Time"] =< 20:00:00 
then 19:00 - 20:00

else 
if [#"ReceievedDate - Time"] => 20:00:00 or 
[#"ReceievedDate - Time"] =< 21:00:00 
then 20:00 - 21:00

else 
if [#"ReceievedDate - Time"] => 21:00:00 or 
[#"ReceievedDate - Time"] =< 22:00:00 
then 21:00 - 22:00

else 
if [#"ReceievedDate - Time"] => 22:00:00 or 
[#"ReceievedDate - Time"] =< 23:00:00 
then 22:00 - 23:00

else 23:00 - 00:00

Muchas gracias

13 Replies

  • @GJ217 deberías tenerlo entre comillas:

    =if [#"ReceievedDate - Time"] => 00:00:00 or 
    [#"ReceievedDate - Time"] =< 01:00:00 
    then "00:00 - 01:00"

    Me gustaría elogiossi mi solución ayudara.👉Si puedes pasar tiempo publicando la pregunta, también puedes hacer esfuerzos para dar a Kudos quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!

    Visítenos enhttps://perytus.com, su ventanilla única para proyectos/formación/consulta relacionados con Power BI.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hola @parry2k

      Gracias por volver a mí, he añadido las marcas de voz y el error sigue ahí.

      • parry2k's avatar
        parry2k
        Icon for Super User rankSuper User

        @GJ217 sí también tiene que utilizar una función de tiempo como se menciona en @az38

        Me gustaría elogiossi mi solución ayudara.👉Si puedes pasar tiempo publicando la pregunta, también puedes hacer esfuerzos para dar a Kudos quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!

        Visítenos enhttps://perytus.com, su ventanilla única para proyectos/formación/consulta relacionados con Power BI.

  • az38's avatar
    az38
    Icon for Community Champion rankCommunity Champion

    Hola @GJ217

    tratar de usar #time

    if [#"ReceievedDate - Time"] >= #time(0, 0, 0) then...
    • Anonymous's avatar
      Anonymous
      Not applicable

      Hola @az38

      Gracias por volver a mí, esto no funciona tengo el rojo debajo de la línea bajo el "ti" de la palabra tiempo en la primera línea.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hola @parry2k @az38

    Ok, así que lo he enmendado a esto, y todavía vuelve con el token Luego se requiere el error de resaltado de la "ti" en la primera fila de la palabra tiempo.

    ¿Alguno de ustedes podría decir amablemente cómo esto debe escribirse exactamente usando el primer párrafo de mi guión? Me estoy equivocando en alguna parte y no puedo verlo.

    =if [#"ReceievedDate - Time"] => #time (0,0,0) or 
    [#"ReceievedDate - Time"] =< #time  (1,0,0) 
    then 00:00 - 01:00
    
    else 
    if [#"ReceievedDate - Time"] => #time  (1,0,0)  or 
    [#"ReceievedDate - Time"] =< #time (2,0,0)  
    then 01:00 - 02:00
    
    else 
    if [#"ReceievedDate - Time"] => #time  (2,0,0)  or 
    [#"ReceievedDate - Time"] =< #time (3,0,0)  
    then 02:00 - 03:00
    
    else 
    if [#"ReceievedDate - Time"] => #time (3,0,0) or 
    [#"ReceievedDate - Time"] =< #time  (4,0,0) 
    then 03:00 - 04:00
    
    else 
    if [#"ReceievedDate - Time"] => #time  (4,0,0)  or 
    [#"ReceievedDate - Time"] =< #time (5,0,0) 
    then 04:00 - 05:00
    
    else 
    if [#"ReceievedDate - Time"] => #time  (5,0,0)  or 
    [#"ReceievedDate - Time"] =< #time  (6,0,0)  
    then 05:00 - 06:00
    
    else 
    if [#"ReceievedDate - Time"] => #time  (6,0,0) or 
    [#"ReceievedDate - Time"] =< #time  (7,0,0) 
    then 06:00 - 07:00
    
    else 
    if [#"ReceievedDate - Time"] => #time  (7,0,0)  or 
    [#"ReceievedDate - Time"] =< #time  (8,0,0) 
    then 07:00 - 08:00
    
    else 
    if [#"ReceievedDate - Time"] => #time  (8,0,0)  or 
    [#"ReceievedDate - Time"] =< #time  (9,0,0) 
    then 08:00 - 09:00
    
    else 
    if [#"ReceievedDate - Time"] => #time  (9,0,0)  or 
    [#"ReceievedDate - Time"] =< #time  (10,0,0) 
    then 09:00 - 10:00
    
    else 
    if [#"ReceievedDate - Time"] => #time (10,0,0) or 
    [#"ReceievedDate - Time"] =< #time (11,0,0)  
    then 10:00 - 11:00
    
    else 
    if [#"ReceievedDate - Time"] => #time (11,0,0)  or 
    [#"ReceievedDate - Time"] =< #time (12,0,0)  
    then 11:00 - 12:00
    
    else 
    if [#"ReceievedDate - Time"] => #time (12,0,0)   or 
    [#"ReceievedDate - Time"] =< #time (13,0,0)  
    then 12:00 - 13:00
    
    else 
    if [#"ReceievedDate - Time"] => #time (13,0,0)   or 
    [#"ReceievedDate - Time"] =< #time (14,0,0)  
    then 13:00 - 14:00
    
    else 
    if [#"ReceievedDate - Time"] => #time (14,0,0)   or 
    [#"ReceievedDate - Time"] =< #time (15,0,0)  
    then 14:00 - 15:00
    
    else 
    if [#"ReceievedDate - Time"] => #time (15,0,0)   or 
    [#"ReceievedDate - Time"] =< #time (16,0,0)  
    then 15:00 - 16:00
    
    else 
    if [#"ReceievedDate - Time"] => #time (16,0,0)   or 
    [#"ReceievedDate - Time"] =< #time (17,0,0)  
    then 16:00 - 17:00
    
    else 
    if [#"ReceievedDate - Time"] => #time (17,0,0)   or 
    [#"ReceievedDate - Time"] =< #time (18,0,0)  
    then 17:00 - 18:00
    
    else 
    if [#"ReceievedDate - Time"] => #time (18,0,0)   or 
    [#"ReceievedDate - Time"] =< #time (19,0,0)  
    then 18:00 - 19:00
    
    else 
    if [#"ReceievedDate - Time"] => (19,0,0)   or 
    [#"ReceievedDate - Time"] =< (20,0,0)  
    then 19:00 - 20:00
    
    else 
    if [#"ReceievedDate - Time"] => (20,0,0)   or 
    [#"ReceievedDate - Time"] =< (21,0,0)   
    then 20:00 - 21:00
    
    else 
    if [#"ReceievedDate - Time"] => (21,0,0)   or 
    [#"ReceievedDate - Time"] =< (22,0,0)   
    then 21:00 - 22:00
    
    else 
    if [#"ReceievedDate - Time"] => (22,0,0)   or 
    [#"ReceievedDate - Time"] =< (23,0,0)  
    then 22:00 - 23:00
    
    else 23:00 - 00:00

    Muchas gracias

    • az38's avatar
      az38
      Icon for Community Champion rankCommunity Champion

      @GJ217

      No estoy seguro en sus nombres. en las marcas "<", en espacios después de "tiempo" y en la siguiente declaración. tratar como

      =if [ReceievedDate - Time] => #time(0,0,0) or 
      [ReceievedDate - Time] =< #time(1,0,0) 
      then "00:00 - 01:00"
      

  • v-zhenbw-msft's avatar
    v-zhenbw-msft
    Icon for Community Support rankCommunity Support

    Hola @GJ217 ,

    Los signos más grandes y los signos iguales no están en la posición correcta, y no agredió comillas dobles a los campos después de la función Then.

    Así que puedes referirte a esta siguiente fórmula,

    if [#"ReceievedDate - Time"] >= #time (0,0,0) or 
    [#"ReceievedDate - Time"] < #time  (1,0,0) 
    then "00:00 - 01:00"

    Nested1.jpg

    Si tiene alguna pregunta, por favor pregunte aquí y trataremos de resolverlo.

    Saludos

    Equipo de apoyo a la comunidad _ zhenbw

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

    • dhreorg's avatar
      dhreorg
      Frequent Visitor

      Hola, estaba buscando ayuda con un error de instrucción IF que estoy recibiendo con la creación de una nueva columna calculada

      si ([Importe de ventas] > 0 y [Producto] á "Producto 1" o [Producto] á "Producto 2" o [Producto] á "Producto 3"),1,0)

      Esencialmente estoy tratando de crear varias columnas, donde puedo agrupar varios productos en paquetes, bajo parámetros específicos.

      pero sigo recibiendo un error;

      Expression.Error: No se reconoció el nombre 'IF'. Asegúrate de que esté escrito correctamente.

      Agradecería cualquier consejo al respecto.

      • parry2k's avatar
        parry2k
        Icon for Super User rankSuper User

        @dhreorg probar esto

        if [Sales Amount] > 0 and ([Product] = "Product 1" or [Product] = "Product 2" or [Product] = "Product 3") then 1 else 0
        
         

        Me gustaría elogiossi mi solución ayudara.👉Si puedes pasar tiempo publicando la pregunta, también puedes hacer esfuerzos para dar a Kudos quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!

        Visítenos enhttps://perytus.com, su ventanilla única para proyectos/formación/consulta relacionadas con Power BI.