Hace algún tiempo ya hice una entrada sobre esta historia que está expuesta en este comic de Cryptoclub. Los papeles con las cifras están en wikipedia. Tres hojas y solo una resuelta.
Las hojas contienen un conjunto de números. La solución conocida para la segunda es asociar cada número con una palabra de la declaración de independencia de los Estados Unidos de la época y quedarnos solo con la inicial. En su momento realicé programas en LOGO y Python como método de intento de resolución porque son muy versátiles para introducir diferencias en la manera en que podrían estar cifradas las hojas.
Se me ocurrió pensar si con una hoja de cálculo se podría implementar algo sencillo y la función DESREF resultó ser útil a este respecto. Combinándola con la función IZQUIERDA (que toma solo la primera letra de un texto) se puede usar de esta manera:
El uso sería el siguiente:
La primera columna (columna A) contiene solo los números de una de las hojas (en este caso la segunda que está resuelta), un número por fila.
La segunda columna (columna B) contiene el texto contra el que lo queremos confrontar (en este caso la declaración de independencia de los Estados Unidos) tal y como está resuelta la segunda hoja y también una palabra por fila.
En la tercera columna (columna C) escribimos la fórmula en la primera celda:
=IZQUIERDA(DESREF($A$1;A1-1;1))
y el resto autocompletamos.
Podemos observar que nos da el conocido texto «I have deposited…» (con los errores conocidos).
El modo de funcionamiento de DESREF en este caso es sencillo: tomo como origen siempre la primera celda (A1), de ahí que usemos referencias absolutas ($A$1). Nos desplazamos hacia abajo tanto como nos dice el número de la columna A (restando 1 para que todo cuadre), de ahí el uso de (A1-1) que lo hacemos relativo para el uso de autocompletar. El último número de DESREF hace mención a que debe desplazarse uno hacia la derecha desde el origen (es decir, que coja la columna B que contiene el texto ordenado).
Como curiosidad dejo la columna D con el resultado de coger la última letra de cada palabra en vez de la primera, sin más que cambiar la función IZQUIERDA por la función DERECHA.