jueves, agosto 29, 2013

Cuando Excel se equivoca al ordenar datos

Hay muchos motivos por los cuales se pueden producir desajustes al ordenar una tabla en Excel. Cuando nos topamos con este problema, nuestra primera reacción es "¡hay un bug en Excel!". Pero los que "hemos fatigado los arduos senderos de Excel por años" (parafraseando al inmortal Borges), sabemos que en casi todos los casos la culpa recae sobre el usuario.

Este artículo de Microsoft contiene una lista de errores que pueden causar desajustes al ordenar datos.

Una vez dicho todo esto, veamos el siguiente caso



En esta tabla, los valores de la columna Porcentaje se obtienen de la tabla en la hoja "clientes", usando la función INDICE combinada con COINCIDIR.



Si observamos la fórmula en la columna "Porcentaje" veremos que Excel incluye la referencia a la hoja "ventas" a pesar de ser esta la hoja activa.



Esto se debe a que al construir la fórmula comenzamos en la hoja activa (Ventas), pasamos a la hoja "clientes" para señalar el rango de la matriz de búsqueda de INDICE y luego volvemos a "Ventas" para completar la fórmula.

Esta referencia a la hoja donde se encuentra la fórmula parece superflua pero inocua. Ahora veamos que pasa al ordenar la tabla por tipo de clientes. Como referencia recordemos que las ventas netas del Cliente 1 son 259,508



Las ventas neto del Cliente 1 ahora son 274,773!



Si nos fijamos en las fórmulas en la tabla ordenada por Tipo, veremos que, a pesar de que las referencias a la columna Tipo son relativas (por ejemplo, ventas!C3 para el Cliente 1), al ordenar la tabla éstas actúan como referencias absolutas.
En la imagen anterior podemos ver que el Cliente 10 se encuentra en la fila 3, pero la formula en la celda E3 se refiere a la celda C12, que era la fila del cliente antes de ordenar la tabla.

Para solucionar o evitar este problema lo que hacemos es eliminar la referencia a la hoja activa ("ventas" en nuestro caso) en las fórmulas. Nuestra fórmula ahora se verá así

=INDICE(clientes!$B$2:$B$4,COINCIDIR(C3,clientes!$A$2:$A$4,0))

Ahora, al ordenar los datos por tipo, no se producirá el desajuste


15 comentarios:

  1. Me pasó hace pocos días, encontré la solución que mencionas de manera empírica, es un muy buen tip. Uno más para la biblioteca. Saludos.

    ResponderBorrar
  2. Buenas tardes, por favor quisiera que desarrolle el siguiente tema que he descubierto:
    tengo una pestaña con 3 tablas, en las cuales hay grupos y subgrupos, rotulados sin celdas combinadas (cada subgrupo tiene su rotulo igual para cada fila a la izquierda), quiero darle un primer orden de nivel por total del grupo y otro nivel para cada subgrupo, de mayor a menor para todo, pero el excel solo me permite darle orden a UNA tabla, las demás no las ordena. quisiera saber más acerca de este misterio, ya que también descubrí que cuando dejo una sola tabla por pestaña si me ordena muy bien todo, solo que mi "jefecito" quiere todo en una sola, gracias de antemano y espero me pueda haber comprendido.

    ResponderBorrar
  3. Christian, te sugiero que me envíes el archivo o un ejemplo ya que me resulta difícil analizar tu problema a partir la descripción (por ejemplo, no me queda claro qué quieres decir por subgrupo).
    Ahora, si estamos hablando de ordenar y no de filtrar, Excel permite ordenar rangos independietemente uno del otro.

    ResponderBorrar
  4. Estimado Jorge te he enviado el archivo a tu correo, gracias

    ResponderBorrar
  5. Hola Christian, le doy un vistazo y te contesto por mail privado.

    ResponderBorrar
  6. Gracias, logré solucionar el problema :)

    ResponderBorrar
  7. Hola, tengo una tabla que requiero ordenar, en primer nivel por numero de mayor a menor, y por segundo nivel de menor a mayor. El Excel realiza el primer ordenamiento pero el segundo no lo hace, porque en el primer nivel hay valores iguales.

    Esta es la tabla inicial:

    No. Residuo
    1 0,3333333
    2 -
    3 -
    4 0,3333333
    5 0,6666667
    6 -
    7 -
    8 -
    9 0,3333333
    10 0,3333333
    11 0,6666667
    12 0,6666667
    13 -
    14 0,3333333
    15 0,3333333
    16 0,6666667
    17 -
    18 0,6666667
    19 -
    20 0,6666667
    21 0,6666667
    22 0,3333333
    23 0,3333333
    24 0,3333333
    25 0,3333333
    26 0,6666667
    27 -

    Le aplico Ordenar tabla primero por "Residuo" de Mayor a Menor, luego por "No." de Menor a Mayor.

    No. Residuo
    5 0,6666667
    11 0,6666667
    12 0,6666667
    18 0,6666667
    20 0,6666667
    21 0,6666667
    26 0,6666667
    16 0,6666667
    4 0,3333333
    9 0,3333333
    14 0,3333333
    15 0,3333333
    23 0,3333333
    24 0,3333333
    25 0,3333333
    1 0,3333333
    10 0,3333333
    22 0,3333333
    2 -
    3 -
    6 -
    7 -
    8 -
    13 -
    17 -
    19 -
    27 -

    No ordena correctamente para los numero 16, 4, 1, 10, 22

    Que puede ser? ya probé en varios equipos.

    ResponderBorrar
  8. Asegurate que todos los valores en la tabla sean numéricos. Posiblemente parte de ellos (o todos) son textos, a pesar que se vean como números. El principal "sospechoso": el - en lugar de 0.

    ResponderBorrar
  9. Excelente tips, me ha resuelto el día !!! Gracias por compartirlo.

    ResponderBorrar
  10. Saludos, gracias por los cosnsejos.
    Tengo un problema, he desarrollado una hoja en la que combino datos numericos, porcentuales y de texto.
    El 'resultado" es porcetajes que estan en una columna y que representan un resultado expresado en texto y obedece a la funcion Si.
    Todo muy bien. pero lo mas importante para mi que es ordenar esos porcentajes . la hoja solo me ordena 3 de las columnas y las otras tres no, de hecho cambia el orden sin ningun sentido.
    he buscado sentido a esto y no lo encuentro. Le agradezco mucho si pudiera indicarme un camino.
    me imagino que como todo en excel al final es solo una coma o punto puesto en el lugar no indicado
    Gracias de antemano

    ResponderBorrar
  11. Olvidaba comentar que me muetra por decimas de segundo el orden perfecto y luego se presenta desordenado como dije antes, en tres de las 6 columnas

    ResponderBorrar
  12. Hola Asdrúbal, tendría quue ver tu archivo para hacerme una idea del problema y encontrar una solución.

    ResponderBorrar
  13. saludos, gracias por responder como se lo podria hacer llegar?

    ResponderBorrar
    Respuestas
    1. Fijate en el boton "Ayuda", en la parte superior del blog

      Borrar

Nota: sólo los miembros de este blog pueden publicar comentarios.