Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
<body><p> </p> <p> </p> <p>Estimados, me acabo de unir a este foro y estoy dando mis primeros pasos en QV. Tengo una problemática con un proceso que necesito realizar. </p> <p>tengo una planilla excel que posee tres campos, <strong>obj_id</strong>,<strong> nombre_campo</strong>, <strong>formula</strong>. El campo <strong>obj_id</strong> corresponde al id de una serie de objetos, el campo <strong>nombre_campo</strong> corresponde a los nombres de campo de una tabla QVD (que además contiene el campo <strong>obj_id</strong>, y el campo formula indica si el campo será considerado dentro de una suma o no. por ej. </p> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="151" valign="top"> <p>obj_id</p> </td> <td width="151" valign="top"> <p>nombre_campo </p> </td> <td width="151" valign="top"> <p>formula</p> </td> </tr> <tr> <td width="151" valign="top"> <p>1</p> </td> <td width="151" valign="top"> <p>CAMPO_1</p> </td> <td width="151" valign="top"> <p>Suma</p> </td> </tr> <tr> <td width="151" valign="top"> <p>1</p> </td> <td width="151" valign="top"> <p>CAMPO_2</p> </td> <td width="151" valign="top"> <p>Suma</p> </td> </tr> <tr> <td width="151" valign="top"> <p>1</p> </td> <td width="151" valign="top"> <p>CAMPO_3</p> </td> <td width="151" valign="top"> <p> </p> </td> </tr> <tr> <td width="151" valign="top"> <p>1</p> </td> <td width="151" valign="top"> <p>CAMPO_4</p> </td> <td width="151" valign="top"> <p>Suma</p> </td> </tr> <tr> <td width="151" valign="top"> <p>2</p> </td> <td width="151" valign="top"> <p>CAMPO_1</p> </td> <td width="151" valign="top"> <p> </p> </td> </tr> <tr> <td width="151" valign="top"> <p>2</p> </td> <td width="151" valign="top"> <p>CAMPO_2</p> </td> <td width="151" valign="top"> <p> </p> </td> </tr> <tr> <td width="151" valign="top"> <p>2</p> </td> <td width="151" valign="top"> <p>CAMPO_3</p> </td> <td width="151" valign="top"> <p> </p> </td> </tr> <tr> <td width="151" valign="top"> <p>2</p> </td> <td width="151" valign="top"> <p>CAMPO_4</p> </td> <td width="151" valign="top"> <p>Suma</p> </td> </tr> <tr> <td width="151" valign="top"> <p>3</p> </td> <td width="151" valign="top"> <p>CAMPO_1</p> </td> <td width="151" valign="top"> <p>Suma</p> </td> </tr> <tr> <td width="151" valign="top"> <p>3</p> </td> <td width="151" valign="top"> <p>CAMPO_2</p> </td> <td width="151" valign="top"> <p>Suma</p> </td> </tr> <tr> <td width="151" valign="top"> <p>3</p> </td> <td width="151" valign="top"> <p>CAMPO_3</p> </td> <td width="151" valign="top"> <p>Suma</p> </td> </tr> <tr> <td width="151" valign="top"> <p>3</p> </td> <td width="151" valign="top"> <p>CAMPO_4</p> </td> <td width="151" valign="top"> <p> </p> </td> </tr> </tbody> </table> <p> </p> <p>Desde esta tabla excel creo una nueva solamente con el <strong>obj_id</strong> y con la composicion de la formula, por ej:</p> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="151" valign="top"> <p>obj_id</p> </td> <td width="180" valign="top"> <p>formula</p> </td> </tr> <tr> <td width="151" valign="top"> <p>1</p> </td> <td width="180" valign="top"> <p>CAMPO_1+CAMPO_2+CAMPO_4</p> </td> </tr> <tr> <td width="151" valign="top"> <p>2</p> </td> <td width="180" valign="top"> <p>CAMPO_4</p> </td> </tr> <tr> <td width="151" valign="top"> <p>3</p> </td> <td width="180" valign="top"> <p>CAMPO_1+CAMPO_2+CAMPO_3</p> </td> </tr> </tbody> </table> <p> </p> <p>A otra tabla, que sus campos son <strong>obj_id</strong>, <strong>CAMPO_1</strong>, <strong>CAMPO_2</strong>,....., <strong>CAMPO_N L</strong>e uno (<strong>left join</strong>) la formula creada anteriormente, esto para realizar una suma de los campos indicados por la formula al momento de leer la tabla y quedar solamente con el <strong>obj_id </strong>y la suma (de los campos indicados por a esta altura el campo formula). </p> <p> </p> <p>Entonces tengo el sgte código:</p> <p>load</p> <p>obj_id,</p> <p>evaluate(formula) as sumadevalores</p> <p> </p> <p>Y me arroja valores nulos.... </p> <p> </p> <p>Alguien podría asesorarme??, gracias. </p> <p> </p> <h4></h4> <p> </p> <p> </p> <p> </p> <p><col span="2" width="79"></col></p> <p> </p> <p> </p> <p> </p> <p> </p></body>
Realmente no me queda muy clara tu duda, podrías explicar un poco más
sube un QVW con un ejemplo de tu info para poder echarle un ojo, saludos
Antes que nada gracias por el tiempo.
Mira, el tema es fácil (la explicación al menos). Tengo una tabla que tiene un campo obj_id, y una serie de campos, CAMPO_1, CAMPO_2, ... , CAMPO_N. Necesito sumar los campos, el problema es que para cada objeto la suma no esta dada por los mismos campos. Por ej. para el objeto con id= 1 la suma esta dada por CAMPO_1 + CAMPO2. Para el objeto con id=2 la suma esta dada por la suma de los CAMPO_3+CAMPO_1, ETC.
Lo que estoy tratando de hacer es una tabla excel donde indico para cada obj_id como esta compuesta la suma....(formula)
entonces luego con left join agrego esa formula a cada registro de la tabla que contiene todos los valores, para luego poder realizar la suma de acuerdo a su formula particular.
espero que ahora se entienda. Y sorry por el post anterior. No me fije que quedaría tan desordenado.
que tal fernat pudiste resolver este detalle de la suma con formula, te comento que yo tengo la misma duda solo que yo tengo dos consultas y dentro del qlik estoy haciendo un join y necesito sumar los registros de la segunda tabla a un registro en especifico de la primera consulta, espero me puedas ayudar en caso de que ya tengas resuelto el caso.
saludos.
My spanish is not that good..so...
I think you should LOAD your "Formula" a it is... and use a Variable to calculate your expression...
No, no pude resolverlo, almenos de forma elegante. Como se supone que los campos a considerar en la suma eran "variables", es decir, para un codigo en particular se sumaban algunos campos y para otros codigos se sumaban otros, lo solucione con un if dentro del script. Creo que la forma optima de hacerlo era creando un campo formula, que contviera los campos a sumar para cada codigo:
id=1
suma= campo1+campo2+campo3
id=2
suma=campo2+campo3+campo4.
La formula pude crearla sin problemas, el tema es que en el script al colocar:
evaluate(formula) as resultadoSuma
Esto no me entrega valores.
Sorry por no poder ayudarte mas.
Hola!
¿Has comprobado que campo1, campo2, etc son numéricos y por tanto evaluables por la función EVALUATE? Procura que en la carga lo que nos indicas como "suma" sea un valor numérico (cuidado por tanto con comas, puntos y demás separadores de decimales o miles). Si te sirve de ayuda, prueba, en el script de carga con algo similar a
Evaluate(Num(campo1+campo2+campo3))
Un saludo.
Gracias por tu tiempo Miguel. Verificare lo que me indicas y te cuento el resultado.
Gracias.