Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Syndicate_Admin
Administrator
Administrator

Convertir el nombre del mes en el mes No

Hola a todos, tengo una columna que tiene nombres de meses y quiero convertirlos en números enteros para poder usar la función Fecha (tengo columnas que tienen el día y el año).

Lo intenté:

interruptor (month_name,

"Enero",1,
"Febrero",2,

"Marcha",3 etc

Pero me da el error de que no puedo comparar el texto con un número.

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola @Khomotjo ,

Utilice el siguiente DAX para lograr su objetivo:

MonthNumber = 
SWITCH(
    TRUE(),
    'Table'[month_name] = "January", 1,
    'Table'[month_name] = "February", 2,
    'Table'[month_name] = "March", 3,
    'Table'[month_name] = "April", 4,
    'Table'[month_name] = "May", 5,
    'Table'[month_name] = "June", 6,
    'Table'[month_name] = "July", 7,
    'Table'[month_name] = "August", 8,
    'Table'[month_name] = "September", 9,
    'Table'[month_name] = "October", 10,
    'Table'[month_name] = "November", 11,
    'Table'[month_name] = "December", 12,
    BLANK() -- Default case if no match is found
)

Asegúrese de reemplazar 'Table'[month_name] con el nombre de la tabla y la columna que contienen meses como cadena

Syndicate_Admin
Administrator
Administrator

Hola @Khomotjo

Puede concatenar el nombre del mes con un día y un año para obtener la representación de la fecha como texto, convertirla en una fecha real mediante DATEVALUE y ajustarla con MONTH para obtener el número del mes.

Month Number =
-- This measure converts a month name into its corresponding month number.
VAR DateAsText = -- Concatenate the 'Month Name' column with a placeholder day ("1") and year ("2024") 
-- to create a full date string (e.g., "January 1, 2024").
'Table'[Month Name] & " 1, " & "2024"
RETURN
    -- Convert the date string into a date value and extract the month number.
    MONTH (
        DATEVALUE ( DateAsText )
    )

danextian_0-1737547249715.png

Syndicate_Admin
Administrator
Administrator

Hola @Khomotjo

Pruebe a continuación dax y cree una columna calculada

MonthNo = SWITCH('Year - Month'[Month], 
        "Jan", 1,
        "Feb",2,
        "Mar",3,
        "Apr",4,
        "May",5,
        "Jun",6,
        "Jul",7, 
        "Aug",8,
        "Sep",9,
        "Oct",10,
        "Nov",11,
        "Dec",12
                )

O pruebe esto

O puede probar esto para crear una columna de fecha

Month Name = 
SWITCH(Table[Month],
   "January", Format (Date(2020,1,1), “mmm”),
   "February", Format (Date(2020,2,1), “mmm”),
//and so on for the rest of the months
)

Espero que el método anterior funcione para usted.

¡Espero haber respondido a tu pregunta!

Uzi2019_0-1737546987963.png

@Khomotjo

Syndicate_Admin
Administrator
Administrator

Hola @Khomotjo ,

Para solucionar el problema de convertir los nombres de los meses en enteros en DAX, el error que se ha encontrado se produce porque la función SWITCH requiere tipos de datos coherentes para sus valores devueltos. Una manera de resolver esto es mediante el uso de una función SWITCH correctamente estructurada, asegurándose de que los valores devueltos sean explícitamente enteros. He aquí un ejemplo:

MonthNumber = SWITCH(
    TRUE(),
    'Table'[Month Name] = "January", 1,
    'Table'[Month Name] = "February", 2,
    'Table'[Month Name] = "March", 3,
    'Table'[Month Name] = "April", 4,
    'Table'[Month Name] = "May", 5,
    'Table'[Month Name] = "June", 6,
    'Table'[Month Name] = "July", 7,
    'Table'[Month Name] = "August", 8,
    'Table'[Month Name] = "September", 9,
    'Table'[Month Name] = "October", 10,
    'Table'[Month Name] = "November", 11,
    'Table'[Month Name] = "December", 12,
    BLANK()
)

Como alternativa, si su modelo de datos lo permite, puede crear una tabla de asignación con dos columnas: Nombre del mes y Número de mes. A continuación, establecería una relación entre la tabla principal y esta tabla de asignación utilizando la columna Nombre del mes como clave. Una columna calculada en la tabla principal puede hacer referencia al número de mes utilizando la función RELATED, de la siguiente manera:

MonthNumber = RELATED('Month Mapping'[Month Number])

Para otro enfoque, puede usar Power Query para controlar esta transformación agregando una columna condicional que asigne el nombre de cada mes a su valor entero correspondiente. Si los datos contienen nombres de meses en inglés coherentes, también puede analizar dinámicamente el número de mes mediante la función DATEVALUE concatenando el nombre del mes, un día y el año en un formato de fecha válido. Por ejemplo:

MonthNumber = MONTH(DATEVALUE('Table'[Month Name] & " 1, " & 'Table'[Year]))

Este método aprovecha la capacidad integrada de la función DATEVALUE para interpretar nombres de meses basados en texto, lo que lo hace eficiente y dinámico para los casos con una columna Year válida. Cada uno de estos enfoques aborda el problema al tiempo que garantiza la flexibilidad y la facilidad de uso en Power BI.

Saludos

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors