La función "Contar.si" es muy lento, alternativa?

2 envíos / 0 nuevos
Último envío
crissigl
Imagen de crissigl
Offline
última acción: Hace 3 meses 3 semanas
alta: 28/05/2020 - 16:14
Puntos: 25
La función "Contar.si" es muy lento, alternativa?

Vuelvo a realizar una pregunta de una situación que se me da siempre... Resulta que manejo planillas que tienen registros de mas de 13.000 filas que las obtengo mediante una conexión externa y un poco de trabajo por medio de una query, pero en la ultima columna tengo una funcion que es "contar.si" y por la cantidad de filas que contiene la base tarda en calcular alrededor de 30 minutos si es que no me quedo corto.

La función que tengo en toda la columna es la siguiente: "=1/CONTAR.SI.CONJUNTO([ENTREGA];[@ENTREGA])"
Divide 1 por la cantidad de entregas que se repita para luego obtener cantidad de entregas mediante una pivot.

La consulta es la siguiente, ¿hay una manera de reemplazar el "contar.si" por otra funcion mas light? La otra opción seria si existe forma entonces, si seria mas liviano, que la función me la haga la query (siempre que sea mas liviana), o sino como ultimo paso un codigo de visual basic pero me parece que la demora seria la misma o aun mas porque deberia indicarle al codigo que recorra celda por celda de la fila buscando repetidos 1 y otra vez. ¿O qué otra tecnica?

La idea es que no demore 30 minutos en hacer el calculo, ni 20 ni 10, cuanto menos mejor.

¿Qué me recomiendan?

adjunto una version reducida de mi base de datos. es la columna cantidad de entregas, C.

Etiquetas: 

RET
Imagen de RET
Offline
última acción: Hace 2 meses 2 semanas
alta: 01/06/2020 - 13:29
Puntos: 290
La función "Contar.si" es muy lento, alternativa?

 

Lo primero que te preguntaría es por que utilizas CONTAR.SI.CONJUNTO si solo tienes una condicion y no varias.

Y la siguiente pregunta es si lo que tarda es la actualización de los datos desde la query externa o el calculo de esa columna. Yo creo que el tiempo se va en la conexión. Haz la pruema de darle a Datos > Actualizar todo y fijate en la barra de estado, abajo a la derecha, que mensajes te va poniendo. Verás algo así como leyendo datos, actualizando datos,... Lo que está haciendo es actualizar el modelo de datos.

 También puedes poner el calculo en manual, y sin actualizar los datos, darle F9 para ver realmente cuanto tarda esta funcion. A mi, en el archivo ejemplo que has mandado, si le añado una columna nueva con =1/CONTAR.SI([ENTREGA];[@ENTREGA]) no me tarda 2 segundos en actualizar.

IMF_RET

Visitame en https://InformaticaMuyFacil.com