Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now
Quiero agregar una columna personalizada Market in M query y la columna usa una declaración if, en la columna
El error en la consulta M se produce porque está intentando realizar una comparación numérica, como [#"MarketCap(Mil)"] > 38500, en un valor nulo. En Power Query, esta operación no se evalúa como verdadera o falsa; da como resultado un error que detiene la instrucción if de continuar. El código intenta comprobar si hay null, pero solo lo hace después de que ya se hayan probado las comparaciones numéricas con errores.
La solución es reestructurar su declaración if para verificar primero si hay null. Esto garantiza que cualquier fila con un valor nulo se controle inmediatamente y salga de la lógica, lo que evita que las comparaciones numéricas se intenten en esa fila.
"Added custom 1" = Table.AddColumn(
#"Filtered rows",
"MarketCap Type",
each if [#"MarketCap(Mil)"] = null then null
else if [#"MarketCap(Mil)"] > 38500 then "Large"
else if [#"MarketCap(Mil)"] > 15000 then "Medium"
else if [#"MarketCap(Mil)"] > 4000 then "Small"
else "Micro"
)
Alternativamente, un enfoque más sólido es usar un try... de lo contrario, expresión. Esta estructura intentará ejecutar la lógica dentro del bloque try. Si se produce un error en alguna parte de ella por cualquier motivo (incluido un valor nulo, un valor de texto u otro error), se detendrá correctamente y devolverá el valor especificado en la cláusula de lo contrario en lugar de producir un error en toda la consulta.
"Added custom 1" = Table.AddColumn(
#"Filtered rows",
"MarketCap Type",
each try (
if [#"MarketCap(Mil)"] > 38500 then "Large"
else if [#"MarketCap(Mil)"] > 15000 then "Medium"
else if [#"MarketCap(Mil)"] > 4000 then "Small"
else "Micro"
) otherwise null
)
Saludos
¿Qué tal si agregas esto como tu primera condición?
cada uno if [#"MarketCap(Mil)"] = null then null,
Hola @Jeanxyz
Utilice el siguiente código
"Agregado 1 personalizado" = Tabla.AddColumn(
#"Filas filtradas",
"Tipo de capitalización de mercado",
cada uno if [#"MarketCap(Mil)"] = null then null
else if [#"MarketCap(Mil)"] > 38500 then "Large"
else if [#"MarketCap(Mil)"] > 15000 then "Medium"
de lo contrario, si [#"MarketCap(Mil)"] > 4000 entonces "Small"
de lo contrario "Micro"
)
solo usa la parte nula al principio
Si esto responde a sus preguntas, acéptelo amablemente como una solución y felicite.
Este código debería funcionar
"Agregado 1 personalizado" = Tabla.AddColumn(
#"Filas filtradas",
"Tipo de capitalización de mercado",
cada uno if [#"MarketCap(Mil)"] = null then null
else if [#"MarketCap(Mil)"] > 38500 then "Large"
else if [#"MarketCap(Mil)"] > 15000 then "Medium"
de lo contrario, si [#"MarketCap(Mil)"] > 4000 entonces "Small"
de lo contrario "Micro"
)
El problema en su código es que M intenta comparar un valor nulo con un número y devuelve un error
Por lo tanto, debe comenzar en todos los casos con la comparación nula
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
Check out the October 2025 Power BI update to learn about new features.