miércoles, 10 de junio de 2020

EXCEL: Buscar la última versión del archivo

Excel formula: Lookup last file version

Fórmula genérica

=BUSCAR(2,1/(ESNUMERO(ENCONTRAR(filename,range))),range)

Explicación

Para buscar la última versión del archivo en una lista, puede usar una fórmula basada en la función BUSCAR junto con las funciones ESNUMERO y ENCONTRAR. En el ejemplo que se muestra, la fórmula en la celda G7 es:

=BUSCAR(2,1/(ESNUMERO(ENCONTRAR(G6,files))),files)

donde "archivos" es el rango con nombre B5: B11.

Contexto

En este ejemplo, tenemos una serie de versiones de archivos enumeradas en una tabla con una fecha y un nombre de usuario. Tenga en cuenta que los nombres de archivo se repiten con un contador al final como número de revisión: 001, 002, 003, etc.

Dado un nombre de archivo, queremos recuperar el nombre de la última o última revisión. Hay dos desafíos:

  1. The challenge is the version codes at the end of the file names make it harder to match the file name.
  2. By default, Excel match formulas will return the first match, not the last match.

Para superar estos desafíos, necesitamos utilizar algunas técnicas difíciles.

Cómo funciona esta fórmula

Esta fórmula utiliza la función BUSCAR para buscar y recuperar el último nombre de archivo coincidente. El valor de búsqueda es 2, y el lookup_vector se crea con esto:

1/(ESNUMERO(ENCONTRAR(G6,files)))

Dentro de este fragmento, la función ENCONTRAR busca el valor en G6 dentro de los "archivos" de rango con nombre (B5: B11). El resultado es una matriz como esta:

{1;#VALUE!;1;1;#VALUE!;#VALUE!;1}

Aquí, el número 1 representa una coincidencia, y el error #VALOR representa un nombre de archivo que no coincide. Esta matriz entra en la función ESNUMERO y sale así:

{VERDADERO;FALSO;VERDADERO;VERDADERO;FALSO;FALSO;VERDADERO}

Los valores de error ahora son FALSO, y el número 1 ahora es VERDADERO. Esto supera el desafío n. ° 1, ahora tenemos una matriz que muestra claramente qué archivos de la lista contienen el nombre del archivo de interés.

A continuación, la matriz se usa como denominador con 1 como numerador. El resultado se ve así:

{1;#DIV/0!;1;1;#DIV/0!;#DIV/0!;1}

que entra en BUSCAR como el lookup_vector. Esta es una solución difícil para desafiar # 2. La función BUSCAR funciona solo en modo de coincidencia aproximada e ignora automáticamente los valores de error. Esto significa que con 2 como valor de búsqueda, VBUSCAR intentará encontrar 2, fallará y retrocederá al número anterior (en este caso, coincide con el último 1 en la posición 7). Finalmente, BUSCAR usa 7 como un índice para recuperar el séptimo archivo en la lista de archivos.

Manejo de búsquedas en blanco

Curiosamente, la función ENCONTRAR devuelve 1 si el valor de búsqueda es una cadena vacía (""). Para evitar una coincidencia falsa, puede ajustar la fórmula en SI y probar una búsqueda vacía:

=SI(G6<>"",BUSCAR(2,1/(ESNUMERO(ENCONTRAR(G6,files))),files),"")


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT