# ¿Cómo calcular un ratio desde 2 campos?

**URL:** <https://discuss.elastic.co/t/como-calcular-un-ratio-desde-2-campos/54906>\
**Category:** Elastic en Español\
**Created:** [July 7, 2016, 7:01am UTC](https://discuss.elastic.co/t/como-calcular-un-ratio-desde-2-campos/54906 "2016-07-07T07:01:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Carlos\_Gutierrez](https://avatars.discourse-cdn.com/v4/letter/c/ad7895/32.png) [@Carlos\_Gutierrez](https://discuss.elastic.co/u/Carlos_Gutierrez)\
**Post date:** [July 7, 2016, 7:01am UTC](https://discuss.elastic.co/t/como-calcular-un-ratio-desde-2-campos/54906/1 "2016-07-07T07:01:03Z")

</div>

Hola a todos y encantado de conocer y participar en este foro 😜

Soy nuevo en ELK y estamos haciendo una prueba de concepto en la que tenemos ventas, objetivos, stocks, etc.  
Lo que necesito es bastante sencillo en otras herramientas pero aquí nos estamos volviendo locos:

Se trata se sacar un valor porcentual desde 2 agregados

- Agregado 1: Sumatorio de las ventas
- Agregado 2: Sumatorio del objetivo de ventas

El ratio a conseguir debe ser un valor porcentual del (agregado 1 / agregado 2) para obtener un valor tal como 80% dentro de un widget (tipo Metric) en Kibana. ¿es esto posible?

 ![](https://us1.discourse-cdn.com/elastic/original/2X/0/0031748838f04113462abbf7d0fad9a1c824c86a.jpg)

Muchísimas gracias a todos por la ayuda.

---

<div class="post-metadata">

**Author:** ![gmoskovicz](https://avatars.discourse-cdn.com/v4/letter/g/ecae2f/32.png) [@gmoskovicz](https://discuss.elastic.co/u/gmoskovicz)\
**Post date:** [July 7, 2016, 11:53am UTC](https://discuss.elastic.co/t/como-calcular-un-ratio-desde-2-campos/54906/2 "2016-07-07T11:53:24Z")

</div>

Hola **Carlos**!

Gracias por llegar a nosotros. Por lo que veo tienes 2 valores y estas buscando la suma de estos valores, y luego calcular un ratio (dividiendo estos valores entre si).

Esto debería ser posible utilizando pipeline aggregations: [https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-bucket-script-aggregation.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-bucket-script-aggregation.html). Por defecto, elasticsearch no puede dividir dos valores de resultado de las aggregations, entonces para eso se crearon este tipo de aggregations. Para hacer un re-procesamiento de los resultados. Esto hace muy sencillo esto.

En Kibana, aun no es soportado ([https://github.com/elastic/kibana/issues/4584](https://github.com/elastic/kibana/issues/4584)) pero de todas maneras uno podria utilizar timelion para eso, que es un kibana plugin ([https://github.com/elastic/timelion](https://github.com/elastic/timelion)).

Espero que haya contestado su pregunta.

Saludos!

--Gabriel

---

<div class="post-metadata">

**Author:** ![JuanCarniglia](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/juancarniglia/32/11154_2.png) [@JuanCarniglia](https://discuss.elastic.co/u/JuanCarniglia)\
**Post date:** [July 29, 2016, 7:49pm UTC](https://discuss.elastic.co/t/como-calcular-un-ratio-desde-2-campos/54906/3 "2016-07-29T19:49:05Z")

</div>

Carlos, yo armé una visualización para hacer algo parecido.

Lo que hace es:

- A = Count Total
- B = Count de una aggregation (Por ejemplo un Filtro)

Divide A / B, y convierte ese valor a un % (del 0 al 100). En base al porcentaje te muestra una imagen relacionada (Por ejemplo, una botella de vino llena al 10%, una barra de progreso, etc.).

Me parece que fácilmente podés adaptar esta visulización a lo que vos querés hacer.

La vis la tengo acá: [https://github.com/JuanCarniglia/kbn\_percent\_nice\_vis](https://github.com/JuanCarniglia/kbn_percent_nice_vis)

Saludos

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 1:46pm UTC](https://discuss.elastic.co/t/como-calcular-un-ratio-desde-2-campos/54906/4 "2017-07-06T13:46:48Z")

</div>


