Saltar al contenido

Duda sobre la función COINCIDIR


garbage

Recommended Posts

publicado

¡Hola foreros!

He estado haciendo un test de Excel y me ha salido la siguiente pregunta:

Cita

Si aplicamos la fórmula =COINCIDIR(150000;C9:C14;-1) a la celda C15 de la "Hoja Excel 2" del Anexo de Excel, ¿cuál será el valor de la celda C15?

En las celdas C9:C14 aparecen los siguientes números:

312.042

331.441

192.703

141.239

33.289

2,27

Las posibles respuestas eran a) 2 b) 3 c) 4 d) Devuelve un resultado erróneo.

Yo contesté la D), porque según la Ayuda de Excel para esta función, si en el tercer argumento aparece -1 , los valores que aparecen en el segundo argumento de la función tienen que estar ordenados en orden  descendente (en este caso, de mayor a menor), cosa que no ocurre en este caso. De hecho, en el ejemplo que aparece en la Ayuda de Excel, aparece que al poner -1 y el rango de números que aparecen en él al no estar colocados en orden descendente, provoca un error del tipo #N/A.

Pues bien, cuál es mi sorpresa cuando veo el resultado y dan como correcta la respuesta B (3). Pruebo a hacerlo en el ordenador y, efectivamente, como resultado da 3, lo cual se contradice, en mi opinión, con el funcionamiento esperado de la función según aparece en la Ayuda de Excel.

¿Alguién me lo podría aclarar?

Gracias!!

publicado

Hola

Los números "sí" están ordenados de mayor a menor, es decir, en descendente.

La función COINCIDIR busca un elemento determinado en un intervalo de celdas y después devuelve la posición relativa de dicho elemento en el rango.

Cuando el tercer argumento es -1 y los número están ordenados de forma descendente, encuentra el número más pequeño que es mayor o igual al valor buscado, en este caso 150000 y el número encontrado que cumple la condición  es 192703, que es el número más pequeño de la lista que es mayor que 150000 y como está en la posición 3, que es su posición relativa en la lista, es lo que devuelve COINCIDIR.

image.png.59b8260c86384ed60903c753bc3b899e.png

Función COINCIDIR (microsoft.com)

 

Saludos

publicado

Gracias por responder, pero los números no están ordenados de forma descendente. Si así fuera, primero aparecería el 331.441 y luego el 312.042, no al revés, que es como aparece en la pregunta del test. De ahí mi duda....

Saludos.

publicado

Hola,

tienes razón, los números no están totalmente ordenados. Lo siento.

Parece ser que la función COINCIDIR fue diseñada para alta velocidad, da por supuesto que el rango que le pasas está ordenado excepto cuando el tercer argumento es 0 (cero) que puede estar en cualquier orden.

Aunque a veces da un resultado no es garantía de que sea correcto, pues a veces con el mismo rango de valores en otro orden da un error.

Nos puede parecer un comportamiento inconsistente y podríamos esperar que si no está ordenado el rango diera un error, pero eso requiere tiempo de cálculo para decidir si el rango está ordenado o no, así que lo da por supuesto o esa es la condición  que impone la función según la Ayuda para su correcto funcionamiento.

Si sí lo está, ascendente o descendente, en coherencia con el el tercer parámetro pasado, el resultado que da COINCIDIR es correcto, si no lo está puede dar un error o un valor, según el algoritmo interno de búsqueda binaria que utiliza le dé un error (interno) o resultado, así lo mostrará como #N/D o resultado engañoso (aunque a primera vista nos parezca correcto o sorprendente (porque no lo entendemos) porque no estamos viendo un error).

image.thumb.png.aa15538c398449db48d05c03fffda55e.png

 

Entonces si esto es cierto, llegamos a la conclusión de que, quien puso el test, cayo en el mismo error dando por supuesto cierto comportamiento.

Saludos

 

publicado

Entonces, lo que aparece en la Ayuda de Excel sobre esta función no es del todo cierto, ya que si los datos no están ordenados en orden descendente (en el caso de utilizar el parámetro -1 como tercer argumento), la función no siempre devolverá #N/A, sino que lo hará de forma "aleatoria", dependiendo también de cómo estén situados el resto de valores del rango de datos, ¿no?

Gracias y un saludo.

publicado

Hola.

Correcto.

La nueva función que sustituye a COINCIDIR (MATCH) es COINCIDIRX (XMATCH) a la que le han añadido un 4 parámetro para que decidas tú si quieres la búsqueda binaria o no y que advieten que si los datos no están ordenados los resultados devueltos no serán válidos.

XMATCH function (microsoft.com)

image.thumb.png.69dff5079309a6bd7ad080c9f8676b50.png

Saludos

publicado

Hola a ambos

Vaya que curioso el caso, lo que si pude detectar o descubrir es que mientras existan en el rango [ordenado o no], valores mayores o igual al buscado en la parte superior, COINCIDIR no dará un error

 

Saludos 

publicado

Por si alguno le interesa... (hablando de tercer parámetro "-1")

Excel evalúa el "ordenamiento" del rango comparando el primer y ultimo valor. Según esos valores, determina si el rango esta ordenado o no y a partir de ahí, hace cosas que están bien, o calcula mal.

image.thumb.png.5a77e304b28eed7aa260168fb4e42ce8.png

En el ejemplo 1 lo hace bien por definición. Rango mal ordenado (debería ser ZA) y devuelve #N/D.

En el ejemplo 2 lo hace bien por definición. Rango ordenado ZA y devuelve la pos, correcta.

En el ejemplo 3 aunque piensa que el rango esta bien ordenado (ZA) el resto de números no lo esta, y devuelve una pos. errónea.

En el ejemplo 4 cuatro vuelve a pensar que el rango esta bien ordenado (ZA) y como va contra def, arroja error #N/A

 

  • 1 month later...

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      189
    • Comentarios
      99
    • Revisiones
      29

  • Crear macros Excel

  • Mensajes

    • Hola Buenas Noches, Me podrán ayudar a resolver un problema con una planilla que tengo, les comento brevemente. Tengo un archivo que cuenta con 2 hojas, la primera se llama "Movimientos" que básicamente muestra los productos con quiebres que se presentan y la hoja "Producción" que como su nombre lo dice son las producciones de cada producto según fecha de creación. Lo que necesito es lo siguiente: Cada vez que agregue una producción en la hoja "producción", debo ingresar el código creado su cantidad y lote respetivamente, además de la fecha en que se realiza la producción, en caso que sea mayor a las 12:00 se considera PM sino AM. Lo complejo es acá en la otra hoja llamada Movimientos: Esta hoja contiene una columna que se llama "Saldo", que básicamente es la diferencia de lo producido vs el quiebre en esa fecha. Una columna llamada "Cumple", que significa que ese pedido lleva si o no el producto con quiebre. Y una columna "Se preparo", que es si el pedido se preparo o no. Lo complicado viene acá es que si la fecha de la producción que ingrese en la hoja "Produccion", se hace después de la fecha de la hoja movimientos no me debe contar esa producción para efecto de la columna Saldos, si la fecha es igual o menor si se considera y ese saldo que queda disponible se puede ocupar para futuros ingresos de pedidos. Otra conducción es que las producciones siempre se deben asignar al pedido más antiguo de ese código salvo que la fecha de entrega ya haya pasado. La columna "Cumple" es básicamente para poder generar un KPI donde me indique cuales producciones se cumplieron con el plazo y cuales No. Espero me puedan ayudar ya que tengo la siguiente formula pero no sirve ya que me toma las unidades totales y no cumple con la restricción del horario. =SUMAR.SI(Produccion!A:A; $A2; Produccion!C:C) - SUMAR.SI.CONJUNTO($E$2:$E2; $A$2:$A2; A2)) Muchas gracias. Ejemplo..xlsx
    • Hola a ambos, Prueba con: =BYROW(G5:G6;LAMBDA(x;UNIRCADENAS(" - ";1;FILTRAR(E5:E10;B5:B10=x)))) Saludos,
    • Si tienes office 365 puedes usar algo como FILTER ó TEXTJOIN y si no tienes, entonces se puede jugar con las formulas, pero no te recomiendo mucho si son muchos datos, de todas maneras te dejo una fórmula y en vba, ya tu decides cual ocupar, vale Saludos BUSCAR.xlsm
    • Buenos días mis estimados Familia ayudaexcel,  Favor quisiera solicitar su gentil soporte con lo siguiente: Necesito una formula que al buscar encuentre el valor inicial de busqueda y dea todo los resultados encontrado en una celda como ejemplo. si este producto tienes 4 cantidades esta al hacer una formula de busqueda me dea el resultado de las 4 en una celda, dejo el adjunto a espera de su gran soporte.   BUSCAR.xlsx
    • Saludos Sr @Israel Cassales espero este bien quise verificar bien su solución y que las modificaciones que hice funcionarán adecuadamente y al respecto debo decir que su aporte es excelente ya que no solo me ayudo a resolver lo que necesitada sino que también me ayudo a solventar dos cosas más por lo cual estoy muy agradecido 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.