Traducir el blog

Mapa europeo con Power Query

Introducción a un nuevo mapa europeo

Puedes descargar un mapa con los datos vinculados de información geográfica, extraídos automáticamente por Microsoft Bing desde la Wikipedia y otras fuentes, y compatible con Excel para Microsoft 365, desde mi anterior artículo:

Mapa del continente europeo en Excel | #ExcelPedroWave

Los tipos de datos vinculados únicamente se pueden insertar con las versiones de Excel para Microsoft 365 y Excel para la Web (que no soporta mapas coropléticos). En otras versiones no existe estos tipos de datos vinculados.

Por lo que me he propuesto que sea compatible con las versiones de Excel que incluyen Power QueryMapa coroplético, o sea: Excel para Microsoft 365; Excel 2021 y Excel 2019, que son las versiones más recientes de Excel.

Como ya comenté en el anterior artículo, los datos vinculados de información geográfica no son uniformes y suelen estar desfasados, por lo que es conveniente buscar otras fuentes de datos más confiables y actualizadas.

Más abajo podrás descargar un mapa del continente europeo sin datos de origen por defecto, pero que se conectará con consultas en Power Query para extraer datos desde varias fuentes, por ejemplo los datos de refugiados ucranianos actualizados diariamente, como muestra esta imagen:


Descarga del mapa europeo

Descarga el mapa v2.1 desde cualquiera de estos enlaces:

La plantilla está protegida sin contraseña, así se protege de los usuarios y a la vez se puede estudiar y analizar este mapa europeo.

Abre la plantilla con alguna versión reciente de Excel, habilita la edición y el contenido para habilitar la conexión de datos externos. Aparecerá un mapa europeo sin datos por defecto, para intentar no violar ninguna licencia de copyright...

AVISO: Para actualizar los datos del mapa por primera vez, y también cuando se quieran volver a actualizar, se debe hacer desde el menú: Datos > Actualizar todo

Al actualizar todo, se consultan los datos de información geográfica con conexiones en Power Query a la Web. La descarga de los datos se hace bajo la responsabilidad del usuario que actualiza todo e inicia la conexión con los orígenes de datos de varias páginas Web...

Si ves el cuadro de diálogo Acceso a contenido web, selecciona la dirección URL correcta, la autenticación anónima y haz clic en el botón Conectar.

Cuando selecciones Rusia, aparecerá el botón Acepto para cargar el mapa de ese país desde Microsoft Bing, pues es el único que no aparece por defecto en el mapa, cosa que he hecho a propósito, pues es tan grande (superficialmente hablando) que se come a los demás países del mapa...


Extracción de datos con Power Query

Es conocido el riesgo que se corre si se usa Power Query pues, al igual que las macros VBA, contienen agujeros de seguridad, como se avisa en estas páginas:

Excel: El programa tiene un agujero de seguridad que Microsoft no puede solucionar (xataka.com)
 
How Hackers Turn Microsoft Excel's Own Features Against It | WIRED

    Pero no por eso vamos a prescindir de las excelentes características de Power Query para extraer, transformar y cargar datos, y para hacer Web Scraping.

    La plantilla descargada mas arriba no incluye datos de las consultas Web y la mayoría de las consultas son de páginas en inglés, pues son más fiables y están más actualizadas.

    Únicamente se han introducido manualmente algunos datos de unos pocos países, frecuentemente los más pequeños, que no se han podido extraer de las tablas "raspadas", siendo marcados en:

    • color amarillo, si el dato está cotejado con evidencias.
    • color naranja, si no hay evidencias de que el dato sea correcto.

    He copiado y pegado algunos datos en la tabla auxiliar: TablaEuropa, que no aparecen en el mapa, como: la bandera; el nombre oficial del país; la capital; el idioma oficial y el año de establecimiento como país. También he importado su pertenencia a la UE y a la OTAN y su clasificación según las noticias de Actualidad. Estos datos están en el rango P1:Y50 de la hoja 'Mapa'.


    Uno de los orígenes de datos más usados es Wikipedia, por contener la biblioteca más grande de información del mundo, y porque permite compartir y adaptar la información libremente, con reconocer que los datos proceden de Wikipedia, la enciclopedia libre:

    Wikipedia:Texto de la Licencia Creative Commons Atribución-CompartirIgual 3.0 Unported - Wikipedia, la enciclopedia libre

    Es una licencia aprobada para realizar obras culturales gratuitas, como puede ser este blog de formación gratuita en Excel. Esta misma licencia se aplica a los datos de refugiados ucranianos en la página Web del ACNURSituation Ukraine Refugee Situation (unhcr.org)

    ATENCIÓN: Wikipedia y otras páginas Web son enciclopedias "vivas", por lo que los datos y las estructuras de las tablas pueden ser modificadas y dejar de funcionar en nuestras consultas con Power Query, lo que hay que tener en cuenta por si hay que adaptar las consultas a esos cambios en próximas versiones de este mapa.


    Consultas con Power Query

    Las consultas definidas son:

    • Population: Con esta consulta se cargan muchos datos de población de casi todos los países del mundo, pero solamente nos interesan datos de: Superficie; Población y Tasa de fertilidad, sin decimales pues el formato de las etiquetas de datos es fijo. El formato numérico de las etiquetas se puede cambiar manualmente o hacerlo con una macro, cosa que está fuera del alcance de este artículo de una plantilla sin macros VBA. Si quieres agregar más datos al mapa, eres libre de hacerlo... La consulta se hace de la página: Population by Country (2022) - Worldometer (worldometers.info)
    • The Real Time Statistics Project (worldometers.info) es uno de los mejores sitios web de referencia gratuitos, según la American Library Association (ALA).

    • GDP (PPP, US$ million): Es el Producto Interior Bruto (PIB) en millones US$, calculado teniendo en cuenta la paridad de poder adquisitivo (PPP - Purchasing power parity) de cada país, que es un valor mucho mejor para comparar el PIB de diversos países que el valor del PIB a precios nominales. Se consulta desde la página: List of countries by GDP (PPP) - Wikipedia
    • Ukraine refugee 2: La segunda tabla se refiere al número de refugiados ucranianos que han recibido otros países no fronterizos. Tampoco se carga en una tabla pues también es del tipo: solo conexión.
    • Ukraine refugee: Es una tabla con la combinación de las dos tablas del tipo: solo conexión, con los refugiados ucranianos en cada país, actualizados hasta el día anterior a su refresco. He introducido a mano datos de Bielorrusia (Belarus en inglés) en la hoja 'Mapa' pues las tablas de Wikipedia no aportan datos de ese país.  Debido a la libre circulación sin controles fronterizos dentro del espacio Schengen, es posible que los refugiados se cuenten más de una vez. Por ejemplo, un refugiado puede ingresar a Polonia desde Ucrania y ser registrado como si hubiera ingresado a Polonia, luego trasladarse a Alemania y ser registrado nuevamente. Por lo tanto, la mayoría de los que se encuentran en esta segunda tabla habrán salido de Ucrania por uno de los países fronterizos con Ucrania enumerados en la primera tabla.

    En la hoja 'Countries' se ha creado una tabla para relacionar los nombres de los países en español y en inglés, ya que la mayoría de datos originales están en inglés y se presentan en español en el mapa. Se comprueba que no hay datos de la Ciudad del Vaticano y de Kosovo en inglés, por lo que los he introducido manualmente en la hoja 'Mapa'.

    Observa que las consultas en Power Query extraen datos de casi todos los países del mundo, por lo que se puede adaptar con poco esfuerzo este mapa del continente europeo a los otros 5 continentes.

    ¿Te animas a incluir otro continente a este mapa?

    ¿Qué otros tipos de datos incluirías en este mapa?

    Mapa del continente europeo en Excel

    Introducción

    Algunas de las plantillas que publiqué hace años han dejado de funcionar por haber usado controles ActiveX o complementos que ya no están soportados por Excel, o por incluir APIs y páginas web que ya no existen.

    Haciendo este mapa me he dado cuenta que, al haberlo diseñado en  Excel para Microsoft 365, no es compatible con ninguna otra versión de Excel, ni siquiera con las versiones más recientes.

    Por eso, en un próximo artículo intentaré hacer este mapa para que funcione en algunas de las versiones recientes de Excel, y que no sea solamente para usuarios con una suscripción a Excel para Microsoft 365.


    Guerra en el continente europeo

    Ahora que Europa está en guerra, aunque Putin no quiera llamar guerra a su invasión militar, interesa más que nunca situar en el mapa al continente europeo con cifras y datos.

    He preparado un mapa cartográfico del continente europeo con datos de:

    • Pertenencia a la OTAN.
    • Pertenencia a la Unión Europea.
    • Actualidad en el frente de guerra.
    • Superficie.
    • Población.
    • Fuerzas armadas.
    • PIB.
    • etc.

    Filtrando para quitar Rusia, que se come el mapa, así es como quedará este mapa coroplético:


    Datos del continente europeo

    El desplegable de las celdas J1:K1 permite filtrar los datos por:

    • Superficie (km²)
    • Población
    • Habitantes por km²
    • Consumo de energía de combustibles fósiles
    • Consumo de energía eléctrica (kWh)
    • Emisiones de dióxido de carbono (Kton por año)
    • Esperanza de vida (Años)
    • Médicos por mil habitantes
    • Tamaño de las fuerzas armadas
    • Tasa de natalidad por mil habitantes
    • PIB - Producto Interior Bruto

    También se puede filtrar el mapa con 4 segmentaciones de datos:

    • UE: Pertenencia a la Unión Europea.
    • OTAN: Pertenencia a la Organización del Tratado del Atlántico Norte.
    • Actualidad: Agrupación de países según las noticias de actualidad no rusas.
    • País: Lista de países del continente europeo.

    En esta tabla está toda la información geográfica necesaria para los datos del mapa, aunque quienquiera añadir más columnas con nuevos datos es libre de hacerlo:

    En la columna P está el nombre del país, con datos de información geográfica, y con un hipervínculo a cada país en Wikipedia.

    En la columna Q hay una fórmula para obtener los datos que aparecen en el mapa:  =INDICE($Z2:$AJ2;1;DatosN)

    siendo el nombre definido DatosN: =COINCIDIR(DatosTipo;Mapa!$Z$1:$AJ$1;0)

    La columna R es la imagen del país, por ejemplo su bandera, obtenida con la fórmula:  =SI.ERROR([@País].Imagen;"")

    Si no se consigue la imagen de un país, se deja en blanco.

    El nombre oficial de la columna S se ha extraído de Wikipedia.

    La columna T con la capital se obtiene con la fórmula:  =[@País].[Capital/ciudad principal]

    La fórmula para el idioma oficial de la columna U es: =INDICE([@País].[Idioma oficial];1;1)

    La columna V con el año en que se ha establecido el país se ha extraído de Wikipedia.

    Las columnas W, X e Y con la pertenencia a la UE y a la OTAN y datos de Actualidad, se han obtenido de Wikipedia.

    El resto de columnas de la Z a la AJ se obtienen de los datos de información geográfica.


    Vídeo del mapa europeo

    En este vídeo explico cómo he diseñado el mapa del continente europeo en Excel.


    Descarga del mapa europeo

    Descarga el mapa v1.1, con el nuevo frente de guerra europea, desde cualquiera de estos enlaces:

    Al abrir la plantilla se debe habilitar la edición y el contenido, para habilitar los tipos de datos vinculados de información geográfica.

    La plantilla está protegida sin contraseña, así se protege de los usuarios y a la vez se puede estudiar y analizar sin limitaciones.

    ATENCIÓN: Comprobando las limitaciones de los mapas coropléticos y de la información geográfica, se concluye que esta plantilla solamente funcionará con una suscripción de Excel para Microsoft 365.

    Si alguien la prueba y le funciona en otra versión, ¡me gustaría saberlo!

    NOTA: Visto lo visto, me he propuesto escribir otro artículo con versiones de este mapa coroplético que se podrán usar en todas las versiones de Excel que admitan el tipo de mapas coropléticos. Además eliminaré los datos de Información Geográfica, que proporciona Excel automáticamente, pues ni son datos fiables ni homogéneos. Intentaré sustituir los datos geográficos por consultas en Power Query de un año reciente...


    Debilidades de los mapas coropléticos

    Los mapas coropléticos de Excel son muy útiles para obtener mapas cartográficos coloreados, pero tienen algunos inconvenientes o debilidades, como se avisa en esta página:

    Crear un gráfico de mapa en Excel (microsoft.com)

    Algunas de las limitaciones de los mapas coropléticos son:

    • No funcionan en todas las versiones de Excel. Solamente funcionan en: Excel para Microsoft 365; Excel 2021; Excel 2019; Excel para iPad; Excel para iPhone; Excel para Android; Excel Mobile.
    • Hay que tener en cuenta que en Excel para Android no funcionan las segmentaciones de datos, por lo que no es compatible con este mapa.
    • Excel no sabrá cartografiar en el mapa los datos geográficos ambiguos, como una ciudad que se llama igual en dos países. Hará falta agregar otra columna con información cartográfica de nivel superior, para conseguir la desambiguación del dato geográfico. Esto no es problema en la plantilla de este mapa.


    • Los gráficos de mapas solo pueden trazar detalles geográficos de alto nivel, por lo que no se admite la asignación de latitud y longitud, ni la asignación de direcciones de calle.
    • Al crear mapas nuevos, o anexar datos a mapas existentes, se necesita una conexión en línea a Internet (para conectarse al servicio Mapas de Bing), aunque los mapas existentes se pueden seguir viendo sin conexión en línea pero con el aviso de Actualizar.


    • Es conveniente configurar el servicio Mapas de Bing de tu país. Me he encontrado con la sorpresa de que por defecto me lo había configurado como México en lugar de España. Cambia la configuración de tu país desde aquí.

    • Proyección del mapa: Al hacer clic con el botón derecho del ratón sobre un país, se abre el menú contextual para: Dar formato a la serie de datos...

    Lo normal sería usar el modo Automático pero resulta que, dependiendo del número de países que se muestran en el mapa, unas veces emplea la proyección de Robinson y otras veces emplea la proyección de Albers. Por lo tanto me he decantado por usar siempre la proyección de Miller para este mapa, pues parece ser la única proyección que se mantiene cuando se filtran los países del mapa.

    ¡No sería correcto que en un mismo mapa se muestren dos proyecciones cartográficas diferentes!

    Para saber mucho más de todos los tipos de proyecciones cartográficas, consulta esta página:

    Anexo:Cronología de las proyecciones cartográficas - Wikipedia, la enciclopedia libre

    El mejor mapa educativo que conozco es la Proyección Equal Earth, con la mejor proyección conseguida del globo terráqueo convertido en un mapa 2D, que se puede consultar y descargar desde esta página:

    Equal Earth Wall Map - Home (equal-earth.com)


    Limitaciones de los datos de información geográfica

    Los datos de información geográfica se obtienen desde el menú: Datos > Tipos de datos > Información geográfica

    En estas páginas se aprende a usar los datos geográficos:

    Obtener datos de ubicación geográfica (microsoft.com)

    Tipos de datos de Excel: cotizaciones e información geográfica (microsoft.com)

    Las limitaciones conocidas de los datos de información geográfica son:

    • Únicamente funcionan en Excel para Microsoft 365 y en Excel para la Web, con la incongruencia de que los mapas coropléticos no funcionan en Excel para la Web.
    • IMPORTANTE: Sugiero a Microsoft incluir los mapas coropléticos en Excel para la Web, y así poder usar los datos de información geográfica en mapas en la Web.
    • Se necesita agregar el idioma de edición inglés, francés, alemán, italiano, español o portugués a las preferencias de idioma de Office. No se proporciona información geográfica en otros idiomas.
    • Si aparece un icono con el signo de interrogación, significa que Excel está teniendo dificultades para encontrar una coincidencia entre el texto y alguno de los datos geográficos de los orígenes en línea.
    • ATENCIÓN: Los datos obtenidos de información geográfica no son uniformes, pues cada tipo de dato es de distinto año y además son datos demasiado antiguos. Por ejemplo el consumo de energía eléctrica es del 2014 o sea, con 8 años de retraso, lo que no es de recibo...


    Mis otros mapas coropléticos

    He publicado anteriormente algunos mapas coropléticos que pueden ser de tu interés:

    Mapa de Provincias de España en Excel | #ExcelPedroWave

    Mapa de Municipios de Zaragoza en Excel | #ExcelPedroWave

    Mapa Autonómico de España en Excel | #ExcelPedroWave

    Tasas de desempleo de la UE | #ExcelPedroWave

    Como he comentado hace un momento, los datos vinculados de información geográfica no son uniformes ni fiables ni se actualizan con frecuencia, por lo que he creado un nuevo mapa del continente europeo con datos extraídos con Power Query, que se puede descargar desde aquí:

    Mapa europeo con Power Query | #ExcelPedroWave

    Este nuevo mapa se podrá usar en más versiones de Excel que el de este artículo...

    Vídeo cuentacuentos con avatares en Excel

    Desde el anterior artículo puedes descargar mi primer cuento hecho con avatares, usando los modelos 3D de versiones recientes de Excel:

    Mi primer cuento con avatares | #ExcelPedroWave

    Una vez descargado, haciendo clic en la bandera de arriba a la derecha, se cambia el idioma del cuento.

    En este artículo publico los vídeos con el cuento traducido a 4 lenguas: español; inglés; ruso y ucraniano, para que lo puedan ver quienes no tengan instalada una versión reciente de Excel.


    How to translate my blog articles

    Just above to the left of any blog article is a Google dropdown to TRANSLATE THE BLOG, with the list of languages into which it can be translated by selecting one of them.

    Как переводить статьи в моем блоге

    Чуть выше слева от любой статьи в блоге находится раскрывающийся список Google для ПЕРЕВОДА БЛОГА со списком языков, на которые его можно перевести, выбрав один из них.

    Як перекладати статті мого блогу

    Трохи вище ліворуч від будь-якої статті блогу є спадне меню Google, щоб ПЕРЕКЛАТИ БЛОГ зі списком мов, на які його можна перекласти, вибравши одну з них.

    Cómo traducir mis artículos del blog

    Justo encima a la izquierda de cualquier artículo del blog se encuentra un desplegable de Google para TRADUCIR EL BLOG, con la lista de idiomas a los que se puede traducir seleccionando uno de ellos.


    Cuentacuentos en español


    Cuentacuentos en inglés


    Cuentacuentos en ruso


    Cuentacuentos en ucraniano

    El vídeo en ucraniano es mudo pues no he conseguido instalar la conversión de texto a voz en ucraniano. Se podrá escuchar si se abre el cuento en una versión de Excel en ucraniano.

    ¿Te animas a contar un cuento con Excel?


    Cómo doblar las voces en Excel

    Para darles voz a los avatares se usa el método:

    Application.Speech.Speak sText, True

    Siendo sText el texto a pronunciar y True el valor del argumento SpeakAsync, que hace que el texto se hable de forma asíncrona (el método no espera a que se hable el texto).

    Excel únicamente dispone de una voz por defecto para la conversión de texto a voz. Si queremos que el texto se diga en varios idiomas hace falta instalar mas voces.

    Para probar cómo habla nuestro Excel, lo más rápido es abrir el editor VBA con la combinación de teclas: Alt + F11 y abrir la ventana Inmediato con la combinación de teclas: Control + G

    Escribiendo la instrucción:

    Application.Speech.Speak "Hola mundo"

    y presionando la tecla de retorno, se pronunciará el texto "Hola mundo" con la voz por defecto en Excel, que en español de España es la voz de Helena. Si a Helena le hacemos hablar en inglés, no sabrá decir "Hello World" correctamente...

    La ventana Inmediato del editor VBA de Excel en español no sirve para escribir texto en alfabeto cirílico, por lo que si queremos escribir "Привет мир" en ruso o "Привіт Світ" en ucraniano, aparecerá como "?????? ???", con interrogantes y no será capaz de decir nada...

    Pero aún seguirá funcionando la macro con texto en cirílico y Excel podrá hablar en ruso si cambiamos la voz de Helena por una voz rusa. Tengo que decir que no he encontrado la forma de instalar voces ucranianas, aunque no será problema hablar en ucraniano si se tiene instalado Excel en ese idioma...


    Cómo instalar voces en otros idiomas

    Para instalar nuevas voces en Excel en otros idiomas hay que abrir la Configuración de Windows (con la rueda dentada) y buscar: texto a voz, seleccionando: Cambiar la configuración de texto a voz

    En la sección de Voces, se puede elegir una voz como Helena, su velocidad y pulsando el botón "Vista previa de voz" se escuchará una muestra de esa voz.

    Lo que nos interesa es la sección de Administrar voces, donde por defecto tengo instalado el paquete de voz: Español (España), pudiendo elegir una de estas voces: Helena, Pablo, Laura.

    Para agregar un nuevo idioma hay que presionar el botón con el símbolo + en Agregar voces.

    Se puede seleccionar la lengua inglesa de varios países, el ruso sólo de Rusia y no aparece la lengua ucraniana, por lo que no se puede instalar.

    En la ventana con los Paquetes de voz se selecciona uno de los idiomas chequeándolo y se presiona el botón: Agregar

    Una vez instalado por ejemplo el Inglés de Estados Unidos, se podrán elegir varias voces nuevas: David, Zira, Mark.

    Al instalar el idioma Ruso se pueden elegir las voces de: Irina y Pavel.

    Pero falta un detalle fundamental, Excel no habla en la voz seleccionada con la voz elegida en la Configuración de Windows, sino con un número de voces mas limitado, como veremos a continuación.


    Cómo cambiar las voces en Excel

    Para cambiar las voces en las que nos puede hablar Excel debemos abrir el Panel de Control y buscar por: texto a voz

    En Reconocimiento de voz, hacer clic en: Cambiar la configuración de texto a voz

    Debemos abrir la pestaña de Texto a voz, con las voces que son reconocidas para convertir texto a voz, seleccionar una de las voces y presionar el botón: Aplicar

    En español solamente reconoce la voz de Helena, pero no las de Pablo y Laura.

    En el inglés de Estados Unidos reconoce las voces de Zira y David, pero no la voz de Mark.

    En ruso reconoce la voz de Irina, pero no la voz de Pavel.

    En ucraniano no he conseguido instalar el paquete de voz de Ucrania.

    Creo recordar que, buscando en la red, contaban cómo conseguir seleccionar más voces para la conversión de texto a voz, editando el Registro de Windows, pero su edición es una acción peligrosa y se sale del alcance de este artículo...

    Para hacer hablar a Excel con otra voz, se selecciona una de las voces de la lista desplegable en la pestaña Texto a voz y se presiona el botón: Aplicar

    A partir de ese momento, Excel hablará con la voz seleccionada...

    Puedes oír las voces en directo si te descargas mi cuento, lo abres con una versión reciente de Excel, y cambias de lengua haciendo clic en las banderas de arriba a la derecha en este archivo:

    Mi primer cuento con avatares | #ExcelPedroWave

    Recuerda que debes cambiar la Selección de voz en la pantalla anterior para poder escuchar el texto en la voz seleccionada.

    ¡No se puede cambiar la voz con ninguna opción de Excel!

    Y hasta aquí puedo contar...

    Mi primer cuento con avatares

    Mi cuento

    Aquí no vengo a hablar de mis avatares en Second Life, ni de mis avatares personales, sino que vengo a hablar de cómo usar modelos 3D en Excel como avatares virtuales, parecido a como se hace en los metaversos.

    Los que nos dedicamos habitualmente a Excel sabemos lo importante que es contar una buena historia de negocio (a storytelling) en un informe o en una presentación, para que tenga un gran impacto en la audiencia y pueda servir de ayuda para que los gestores puedan tomar mejores decisiones.

    Como ese tipo de historias ya las tenemos suficientemente asumidas, en esta ocasión me he atrevido a salir de mi zona de confort para entrar en el mundo virtual de los avatares que viven en el metaverso.

    Como ejercicio me he propuesto contar mi primer cuento con la ayuda de Excel, dejando de lado las cuentas reales o ficticias de las empresas, y haciendo de narrador de una historia, para convertirme en un cuentacuentos (según la RAE: Persona que narra cuentos en público) o como se dice en inglés: a storyteller.


    Mis avatares

    Tú también puedes explorar tu creatividad con modelos en 3D con Excel, leyendo este artículo:

    Explotar su creatividad con modelos en 3D (microsoft.com)

    Donde aprenderás a usar modelos 3D en las versiones más recientes: Excel 2019; Excel 2021 y Excel para Microsoft 365.

    Te puedes hacer una idea de lo que puedes hacer con avatares 3D en Excel con esta imagen, que es la presentación de mi propio cuento:



    Este cuento es:

    • para todas las edades,
    • un ejemplo de uso de modelos 3D en Excel,
    • un cortometraje sin ser un vídeo,
    • una obra teatral en la que actúan avatares,
    • una simulación de un metaverso con macros,
    • un cuento contado en varios idiomas,
    • una representación gráfica de un drama actual.

    Para escribir este cuento he tenido que aprender:

    • a insertar modelos 3D de los avatares,
    • a cambiar el tamaño de los avatares,
    • a girar los avatares, grado a grado,
    • a situar los avatares en escena,
    • a mover los avatares,
    • a hacer hablar a los avatares,
    • a encender y apagar el altavoz,
    • a añadir bocadillos en la historieta,
    • a pausar y continuar el cuento,
    • a cambiar de bandera con el idioma,
    • a escribir el guion de la historia.

    Debilidades de los avatares en Excel:

    • no se mueven con soltura,
    • no mueven los brazos y las piernas,
    • no abren la boca,
    • no expresan emociones con sus caras,
    • no se oyen las voces sin la configuración regional apropiada,
    • no se ven las cajas de mensajes en lenguaje cirílico,
    • no entran y salen de la escena en condiciones,
    • si no se controlan bien, los avatares pueden volar...

    Como guionista del cuento se me ocurrió escribir el guion en celdas de Excel, ¿por qué no? ¡si es la herramienta con la que hago casi todo en esta vida!

    La hoja 'CuentaCuentos' está oculta y contiene el guion del cuento, con estas columnas:

    • Acto: A con el número del acto.
    • Avatar: B con el nombre del avatar.
    • MovX: C con el número de celda del avatar en el eje X.
    • MovY: D con el número de celda del avatar en el eje Y.
    • Giro: E con el ángulo de giro del avatar en grados.
    • ESPAÑOL: F con el texto en español.
    • ENGLISH: G con el texto en inglés.
    • РУССКИЙ: H con el texto en ruso.
    • УКРАЇНСЬКА: I con el texto en ucraniano.

    Este cuento consta de 101 actos, con la acción de los avatares totalmente modificable editando sus movimientos en esta hoja, oculta y protegida sin contraseña.

    ¿Te animas a animar a los avatares?


    Vídeo del cuento

    En este vídeo hago una presentación de mi primer cuento, hecho totalmente con modelos 3D de avatares en Excel.


    Descarga del primer capítulo del cuento

    Únicamente podrás ver el cuento si lo descargas desde cualquiera de estos enlaces:

    Al abrir la plantilla, se debe habilitar la edición y las macros para que funcionen.

    Puedes hacer clic en cualquier parte de la escena:

    • Clic en un cuadro de texto para iniciar el cuento.
    • Clic en la plaza o en la fuente para parar el cuento.
    • Clic en el altavoz para escuchar voces.
    • Clic en el bocadillo para levantar la voz figuradamente.
    • Clic en la bandera para cambiar el idioma.
    • Clic en un avatar para girarlo 45 grados.

    NOTA: Para tener una mejor experiencia, muestra la cinta de opciones en Modo de pantalla completa, y en Vista oculta los Encabezados y la Barra de fórmulas.

    Las hojas están protegidas sin contraseña y el código de las macros sin protección, para poder analizarlo y aprender de él, pues toda la acción del cuento está en el código VBA.

    ATENCIÓN: He probado el cuento en una suscripción de Excel para Microsoft 365 y espero que funcione también en Excel 2019 y Excel 2021. Creo que no funciona en ninguna otra versión de Excel que no incluya modelos en 3D.


    Macros de avatares

    Con estas macros, del módulo modAvatar, responden los avatares del cuento:

    • SerUnaVez: Limpia todo y muestra el primer cuadro amarillo.
    • EstarUnaVez: Se activa al hacer clic en el primer cuadro amarillo y presenta a los 4 avatares en sus primeros 8 actos o movimientos.
    • ContarCuentos: Se activa al hacer clic en el segundo cuadro azul y cuenta el cuento.
    • MoverAvatar: Mueve los avatares y sus "bocadillos" por el escenario durante cada uno de los actos o movimientos. El caso del "Auto" es especial pues mueve a la vez a uno o dos avatares.
    • SituarAvatar: Sitúa un avatar en el escenario.
    • GirarAvatar: Gira un avatar en un determinado ángulo.
    • RotarAvatar: Al hacer clic sobre el avatar, lo rota 45 grados.
    • HablarAvatar: Pone el texto en el "bocadillo" de un avatar.
    • OcultarFormas: Oculta todos los avatares, mostrando la plaza con la fuente de agua y una bandera.
    • OirSonidos: Cambia el icono del Altavoz a ON/OFF, encendido/apagado.
    • LevantarVoz: Sube el "bocadillo" una celda.
    • CambiarLengua: Cambia entre las 4 banderas para hablar una de las lenguas.
    • PararActos: Pregunta si quiere continuar y si quiere empezar el cuento.
    • AcabarActos: Acaba el cuento y recoge el escenario.

    Si el icono del Altavoz está a ON, hace hablar a los avatares con la misma voz femenina para todos, mediante la instrucción: Application.Speech.Speak, en modo asíncrono, con lo que la macro no esperará a que se hable el texto. Únicamente lo he probado en español, ya que hace falta tener configurado Excel en los otros idiomas. Los textos de las dos llamadas a MsgBox en cirílico aparecen como interrogantes. Supongo que se verán bien si Excel está instalado en lengua rusa o ucraniana, las dos con el mismo alfabeto cirílico.


    Acciones humanitarias

    Este cuento está dedicado a los médicos que, sin ánimo de lucro, van a países con problemas sanitarios arriesgando sus vidas para curar a heridos y enfermos.

    Médicos Sin Fronteras | MSF

    Luchamos por el derecho a la salud | Médicos del Mundo

    Cirugía Solidaria (cirugiasolidaria.es) 

    La salud es un derecho universal | medicusmundi

    TrabajoHumanitario.org – Vacantes – Asuntos de género – Subvenciones 

    Músicos por la Salud (musicosporlasalud.org)  

    Ayuda en Accion | ONG española presente en más de 20 países

    Diccionario de Acción Humanitaria (ehu.eus) 

    Si me he dejado alguna ONG dedicada a la salud, puedes hacer un comentario y la incluiré...

    Te doy las gracias por tu interés y colaboración con las ONGs sin fronteras.

    AVISO: Ya puedes ver el cuento si no dispones de una versión reciente de Excel, traducido a 4 idiomas: español; inglés; ruso y ucraniano, desde aquí:

    Vídeo cuentacuentos con avatares en Excel | #ExcelPedroWave

    Cómo geolocalizar ciudades en el mapamundi

    🔝To translate this blog post to your language, select it in the top left Google box.


    Tal día como hoy de hace 12 años escribí el primer artículo de este blog, en el que sigo dando "guerra", y que seguiré publicando mientras tenga lectores que me sigan, a los que tengo que agradecer que visiten este blog a menudo para llegar algún día a los dos millones de páginas vistas (a ver si no hacen falta otros 10 años para alcanzar el segundo millón de visitas).


    Mapamundi con relojes

    En un artículo anterior publiqué un Mapa con Relojes Mundiales que puedes descargar desde aquí:

    Excelente Mapa con Relojes Mundiales | #ExcelPedroWave

    En otro artículo expliqué cómo cambiar, en tiempo real, la representación plana del planeta Tierra, con zonas de día y de noche:

    Mapamundi de día y de noche | #ExcelPedroWave

    En este artículo explicaré cómo se añade una nueva ciudad al mapamundi llamando a una Web API.

    Si en el Mapa con Relojes Mundiales se hace clic en el icono con el símbolo ➕, y luego se introduce un nombre de ciudad en la celda AA2, esa ciudad se busca con la Nominatim API y, las primeras 20 ciudades encontradas, se cargan en el rango de celdas: AA3:AA22

    Al seleccionar una de esas 20 ciudades encontradas, la geolocaliza en el mapamundi y pregunta si se quiere añadir esa nueva ciudad al mapa, como se puede ver en esta captura de pantalla:


    API que busca por nombre

    La abreviación API se refiere a los Interfaces de Programación de Aplicaciones, que permiten consultar grandes bases de datos desde una Web API, mediante un servidor que atiende mensajes de solicitud-respuesta definidas, normalmente expresados en formato JSON o XML, por medio de un mensaje basado en HTTP a través de la web.

    En este caso llamaremos a la API de la web Nominatim (Open-source geocoding with OpenStreetMap (OSM) data), que nos devolverá la latitud y longitud de cualquier ciudad del mundo en cuestión de milisegundos.

    Para poder encontrar hasta 20 ciudades o pueblos al introducir un nombre en la celda AA2, se ejecuta la macro GetLatLongCity, del módulo modCiudadNueva que, mediante un objeto XML, hace una llamada "GET" para obtener datos desde la página web que llama al servidor de Nominatim API:

    https://nominatim.openstreetmap.org/search?format=xml&limit=20&accept-language=en&q=" & sCity

    Siendo: sCity el nombre de la ciudad buscada, por ejemplo: Zaragoza, en esta página web:

    https://nominatim.openstreetmap.org/search?format=xml&limit=20&accept-language=en&q=Zaragoza

    En la llamada a la API se incluye:

    • format=xml, con el formato del archivo de salida.
    • limit=20, con el número máximo de resultados.
    • accept-language=en, con el lenguaje de búsqueda, en este caso en inglés (=en). Para español habría que cambiar a: =es.

    Código de la macro que llama a Nominatim API, y que devuelve xml.responsetext con la respuesta, que es cargada en la celda A1 de la hoja 'Ciudades':


    Nominatim API

    Nominatim indexa entidades con nombre (o numeradas) dentro del conjunto de datos de OpenStreetMap (OSM), que es un mapa del mundo creado por gente como tú o como yo, y que es de uso libre bajo una licencia abierta.

    La Nominatim API consulta los datos buscando objetos OSM por nombre o tipo, y esta documentada en esta página en inglés:

    /search - Nominatim Documentation

    La API de búsqueda (/search) permite buscar una ubicación a partir de una descripción o dirección textual. Nominatim API Search admite consultas de búsqueda estructuradas y de formato libre.

    En la siguiente página se detallan las políticas de uso de esta API.

    Nominatim Usage Policy (osmfoundation.org)

    Me quedo con esta frase:

    "En principio, estamos contentos de que la API pública sea utilizada por usuarios externos para usos creativos e inesperados."


    El resultado de la búsqueda es un archivo con formato XML, del que solamente interesa obtener los valores de estas 3 etiquetas para cada uno de los 20 resultados de la búsqueda:

    • display_name: con el nombre de la ciudad o pueblo encontrado.
    • lat: con la latitud geográfica en formato decimal.
    • lon: con la longitud geográfica en formato decimal.


    Cómo extraer la latitud y longitud de una ciudad

    Para extraer esos 3 valores se puede hacer importando los datos XML de un servicio web en la hoja de cálculo de Excel, como se explica aquí:

    Información general sobre XML en Excel (microsoft.com)

    ¡O mediante fórmulas! ¡que es como a mí me gusta!, pues tengo todo el control sobre las etiquetas que quiero extraer.

    En la celda A1 de la hoja 'Ciudades' está el resultado de la búsqueda con Nominatim API.


    En la columna B he escrito los 3 nombres de las etiquetas, repetidos 20 veces, de las que quiero obtener su valor: lat, lon y display_name, con el signo igual (=).

    En la celda A2 he escrito esta fórmula arrastrada hacia abajo hasta la celda A61:

    =SI.ERROR(EXTRAE(A1;C1+LARGO(B1)+1;LARGO(A1)-C1-LARGO(B1));"")

    En la columna C está la fórmula que busca la posición de las etiquetas de la columna B en la columna A:

    =SI.ERROR(ENCONTRAR(B1;A1);"")

    La fórmula de la columna D extrae los valores de cada una de las etiquetas XML:

    =SI.ERROR(IZQUIERDA(A2;ENCONTRAR("'";A2)-1);"")

    En las columna E a K he creado una tabla de ciudades y fórmulas auxiliares para conseguir la lista de hasta 20 ciudades encontradas, lo que no voy a explicar por falta de espacio...

    En la fila 24 se encuentra la ciudad seleccionada, con su latitud y longitud, su región y país.

    La nueva ciudad sustituirá a una ciudad anteriormente programada en la hoja 'Relojes' y obtendrá su geolocalización en el mapamundi mediante la función LocalizarCiudad, que devuelve la posición en el mapa del punto que representa a la ciudad:

    Esta función se llama en la macro PreguntarCiudad para obtener la longitud y latitud de la nueva ciudad, tanto en la hoja 'Relojes' como en la hoja 'Mundo':


    Y así he podido geolocalizar cualquier ciudad del planeta Tierra en el mapamundi con relojes.

    ¿Qué te parece? ¿Cómo te quedas?

    Mapamundi de día y de noche

    🔝To translate this blog post to your language, select it in the top left Google box.


    Mapamundi con relojes

    En el anterior artículo publiqué un Mapa con Relojes Mundiales que puedes descargar desde aquí:

    Excelente Mapa con Relojes Mundiales | #ExcelPedroWave

    Cuando se abre el mapamundi, aparece la imagen del planeta Tierra, con las zonas de luz y de oscuridad representando las regiones en las que es de día y en las que es de noche.

    Como algunos me habéis preguntado cómo se consigue actualizar la imagen de la Tierra, en este artículo explicaré cómo es posible actualizar el mapamundi con las zonas en las que es de día y en las que es de noche, como en esta imagen de las 24 horas del día 2022-03-02 (formato de fecha ISO 8601).



    Proyección cartográfica

    Para generar el mapamundi se emplea una Proyección cilíndrica equidistante, que también se puede llamar proyección latitud-longitud, por lo que se ha convertido en un estándar en aplicaciones informáticas para procesar mapas globales, por su correspondencia entre píxeles y su posición geográfica.

    Este tipo de proyecciones cilíndricas planas no respetan el tamaño real de los países y continentes, pero es fácil obtener la latitud y la longitud de cualquier punto en el mapamundi, cosa que me sirvió para poder geolocalizar cualquier ciudad o pueblo del Mundo en el mapa.

    Un ejemplo de este tipo de mapamundis lo tienes en esta página en inglés, que te permite moverte por todo el mundo:

    Template:Clickable world map - Wikipedia

    Que los mapamundis se vean planos no quiere decir que nuestro planeta sea plano sino que es una forma cómoda de verlo en un mapa en 2D. Si no crees que el planeta Tierra es una esfera, como cualquier otro astro, no sigas leyendo.

    Ni que decir tiene que los "terraplanistas" no usan proyecciones cilíndricas planas para representar la Tierra, sino un tipo de “proyección acimutal equidistante centrada en el Ártico”, vista desde el Polo Norte. Enlace aquí.


    Vista de la Tierra

    Las imágenes con la vista de la Tierra, que se cargan en el mapamundi al abrir el Mapa con Relojes Mundiales y que se refrescan cada 15 minutos, se extraen desde la siguiente página:

    Earth View (fourmilab.ch)

    En esta página están los Créditos a los participantes en su desarrollo, empezando por John Walker:

    Earth and Moon Viewer: Credits (fourmilab.ch)

    Estas son algunas de las imágenes del planeta Tierra que se pueden obtener de esas páginas, a las que se les puede añadir el día y la noche:


    ¡A que es hermoso el único planeta que conocemos con vida!

    ¡A que merece la pena conservarlo entre todos!

    ¡A que no podemos dejar que lo destruyan, ni las armas, ni el cambio climático, ni los humanos, ni los divinos!


    Cómo insertar el mapamundi

    En el módulo modMapa está la función: ActualizarMapa, que se encarga de situar el mapamundi en su posición, y de cargar la imagen del mapamundi, actualizada con las zonas de día y de noche.

    Este es su código:


    La descarga de la imagen se hace con la función DownloadFile, que está en el módulo: modDownloadFile, obtenido de esta página web:

    Downloading A File (cpearson.com)

    Esta función descarga un archivo desde la web:

    Earth (640×320) (fourmilab.ch)

    que es una imagen de la Tierra en tiempo real, y que se guarda en la ruta del archivo Excel así:

    sMapa = ThisWorkbook.Path & "\WorldMapDayNight.jpg"

    Esa imagen jpg, se carga en el mapamundi con esta función:

    Sheets("Mundo").Mapa.Picture = LoadPicture(sMapa)

    Con lo que se obtiene una instantánea de la imagen animada con la que comencé este artículo, que se inserta en el mapamundi con relojes y que se refresca cada 15 minutos.



    Para descargar este Mapa con Relojes Mundiales visita esta página:

    Excelente Mapa con Relojes Mundiales | #ExcelPedroWave

    Si te ha gustado coméntalo, y si no también...

    Mi lista de blogs