Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas tardes,
A ver si alguien puede echarme una mano con la siguiente duda:
Tengo un archivo con pedidos y en cada pedido aparecen detalladas las referencias que lo componen con su importe correspondiente (adjunto un archivo con una selección de algunos pedidos).
Necesito seleccionar aquellos pedidos que tengan las referencias GEWI63 y PERFO2 (ambas). Puede haber otras referencias más en el pedido.
Muchas gracias,
Manuel
Hola Manuel,
otra forma de poder realizar este calculo seria utilizar la expresión:
Count(if(Aggr(Count(DISTINCT {<Referencia={'GEWI63','PERFO2'}>}Referencia),[Nº pedido])=2,[Nº pedido]))
La ventaja de esta alternativa frente a la opción de Enrique es que no dependes de crear un flag durante la recarga por lo que cambiar las referencias del filtro seria mas sencillo, pero tienes la desventaja de que es menos optimo en cuanto a rendimiento ya que el uso de AGGR consume muchos recursos, por lo que dependiendo del volumen de datos que tengas que manejar esta opción puede penalizar bastante el rendimiento de la aplicación.
Te adjunto un archivo con un par de ejemplos contando pedidos con referencias distintas.
Espero te sirva de ayuda.
Un saludo
Alfredo
Dependiendo del objetivo, la solución puede ser muy diversa.
Aquí te pongo un ejemplo simple.
Otra solución pasaría por marcar, en el proceso de carga, cada registro que tenga uno de los dos y finalmente seleccionar aquellos que tengan ambos
Enrique,
Lo que necesito saber es qué pedidos tienen ambas referencias con independencia de que además puedan tener otras muchas.
Con la primera solución que me planteas, estas considerando los condicionales por separado y en consecuencia, el resultado es que 2 pedidos cumplen la condición. La realidad es que en la muestra que he enviado, tan solo hay un pedido que cumple la condición de tener ambas referencias a la vez.
No, quizás no lo he explicado bien. Si ves la fórmula está sumando 1 por cada uno de los valores encontrados, es decir que el 2 procede de las dos coincidencias. Es algo muy simple y probablemente por eso no sea muy aplicable a tu problema.
Si me explicas en detalle donde lo vas a aplicar o lo que desea conseguir, busco una solución mas adecuada al problema.
Saludos,
Enrique Colomer
Enrique,
Creo que no nos estamos entendiendo muy bien. Resumiendo lo que busco, sería algo así:
Espero que ahora esté un poco más claro.
Gracias en cualquier caso por el tiempo dedicado.
Manuel
OK, entendido, disculpa.
Una posible solución es hacerlo en el momento de la carga, mediante un "flag", siempre que las referencias sean fijas o susceptibles de estar en una variable.
Entonces en el momento de la carga:
1.- Haces una relectura (resident) quedándote solo con la identificación del pedido y el flag. Al empezar un pedido poner a cero el flag.
2.- Preguntas una de las referencias y si coincide sumas 1 al flag, y los mismo con la otra referencia
3. Los pedidos con valor del flag = 2 son los que tienen ambas referencias.
Si esto no se puede hacer en la carga, te explico otro método a continuación.
Gracias Enrique.
¿cuál sería el otro método?
Hola a todos,
¿Alguna sugerencia más de cómo poder resolverlo?
Muchas gracias,
Manuel
Hola Manuel,
otra forma de poder realizar este calculo seria utilizar la expresión:
Count(if(Aggr(Count(DISTINCT {<Referencia={'GEWI63','PERFO2'}>}Referencia),[Nº pedido])=2,[Nº pedido]))
La ventaja de esta alternativa frente a la opción de Enrique es que no dependes de crear un flag durante la recarga por lo que cambiar las referencias del filtro seria mas sencillo, pero tienes la desventaja de que es menos optimo en cuanto a rendimiento ya que el uso de AGGR consume muchos recursos, por lo que dependiendo del volumen de datos que tengas que manejar esta opción puede penalizar bastante el rendimiento de la aplicación.
Te adjunto un archivo con un par de ejemplos contando pedidos con referencias distintas.
Espero te sirva de ayuda.
Un saludo
Alfredo