Power Query para buscar elementos no incluidos en la lista

Un usuario Pregunto ✅

TimNYC

Soy consciente de la función de Power Query List.Contains () para encontrar todos los elementos que están en la lista. Pero lo que necesito es todo lo contrario, encontrar todos los elementos que no están en la lista. En otras palabras, el equivalente de la función «NOT IN» de SQL. Lo que necesito es que esto devuelva todas las transacciones donde el código de pago no es «BADDEBT» o «WRITEOF»

cada uno si [Payment] = 1 y List.Containts ([paycode], «BADDEBT», «WRITEOF») luego «Pagado» o «N / A»

Gracias,

Tim

Hola @TimNYC,

Después de probar con algunos datos de muestra, me gustaría sugerirle que empaque el texto de su código incorrecto como una lista y lo compare con la función ‘List.ContainsAny’ en la declaración if para lograr su requisito.

Fórmula de muestra:

#"Added Custom"= Table.AddColumn(#"Changed Type", "Custom", each if [Payment] <> 1 then "N/A" else if List.ContainsAny([paycode],{"BADDEBT","WRITEOF"}) then "N/A" else "Paid")

Comentario:

1. ‘List.contains’ no se puede comparar con varios valores, utilice ‘List.containsAny’ en su lugar. Si no desea utilizar otras funciones de consulta m, puede escribir varias funciones ‘list.contains’ (con cada código incorrecto) y vincularlas con la palabra clave ‘y’.

2. La función ‘List.contains’ devolverá un resultado bool basado en los resultados de comparación. Si desea extraer resultados inversos, solo necesita intercambiar expresiones booleanas de su declaración if. (intercambiar expresiones verdaderas y falsas)

Saludos,

Xiaxoin Sheng

apo1979prio

Table.AddColumn (Step20, «VP», cada si (Lista.contiene ({«ZNLD»,«ZNLM»},[DOC_TYPE]) y
List.Contains ({«500»,«699»,«800»,«999»,«PT5»,«PT6»,«PT8»,«PT9»}, Texto.Middle ([#».NIF_Venda»], 3, 3))) luego «MI»
demás si (Lista.contiene ({«ZNLD»,«ZNLM»},[DOC_TYPE]) y
no (List.Contains ({«500»,«699»,«800»,«999»,«PT5»,«PT6»,«PT8»,«PT9»}, Texto.Middle ([#».NIF_Venda»], 3, 3)))) luego «PAG»
demás si List.Contains ({«ZTOP»,«ZREP»,«ZG2P»,«ZGCP»},[DOC_TYPE]) luego «F» // Frota
demás nulo)

Hola @TimNYC,

Después de probar con algunos datos de muestra, me gustaría sugerirle que empaquete el texto de su código incorrecto como una lista y lo compare con la función ‘List.ContainsAny’ en la declaración if para lograr su requisito.

Fórmula de muestra:

#"Added Custom"= Table.AddColumn(#"Changed Type", "Custom", each if [Payment] <> 1 then "N/A" else if List.ContainsAny([paycode],{"BADDEBT","WRITEOF"}) then "N/A" else "Paid")

Comentario:

1. ‘List.contains’ no se puede comparar con varios valores, utilice ‘List.containsAny’ en su lugar. Si no desea utilizar otras funciones de consulta m, puede escribir varias funciones ‘list.contains’ (con cada código incorrecto) y vincularlas con la palabra clave ‘y’.

2. La función ‘List.contains’ devolverá un resultado bool basado en los resultados de comparación. Si desea extraer resultados inversos, solo necesita intercambiar expresiones booleanas de su declaración if. (intercambiar expresiones verdaderas y falsas)

Saludos,

Xiaxoin Sheng

Hola @TimNYC

no usar () como

each if [Payment] = 1 and not(List.Containts([paycode],"BADDEBT","WRITEOF")) then "Paid" else "N/A"

pero no estoy seguro de que sea la sintaxis correcta para List.Contains.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *