cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Comprobar caracteres en cadena en DAX

Hola

Im intentando convertir una instrucción CASE de SQL a DAX IF . Digamos que tengo una columna de valores como:

ProjectCode

D-IREE00215

BADR0022

A-DD1255

y parte de la consulta es la siguiente:

Caso

WHEN LEFT(ProjectCode,4) LIKE '%[a-z]%' Y SUBSTRING(ProjectCode,5,4) LIKE '%[0-9]%'

¿Cómo escribo esto en DAX para que el único campo devuelto sea BADR0022

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @VistaDee,

Estos son los pasos que puede seguir:

1. Crear columna calculada

flag =
var _1={"A","B","C","D","E","F","G","H","I","J","K","M","L","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}
VAR _2={0,1,2,3,4,5,6,7,8,9}
var _5=IF(ISERROR(VALUE(MID('Table'[column],5,1))),BLANK(),VALUE(MID('Table'[column],5,1)))
var _6=IF(ISERROR(VALUE(MID('Table'[column],5,1))),BLANK(),VALUE(MID('Table'[column],6,1)))
var _7=IF(ISERROR(VALUE(MID('Table'[column],5,1))),BLANK(),VALUE(MID('Table'[column],7,1)))
var _8=IF(ISERROR(VALUE(MID('Table'[column],5,1))),BLANK(),VALUE(MID('Table'[column],8,1)))
RETURN
IF(LEFT('Table'[column],1) IN _1&&MID('Table'[column],2,1) IN _1&&MID('Table'[column],3,1) IN _1&&MID('Table'[column],4,1) IN _1&&
_5 IN _2 && _6 IN _2 && _7 IN _2 &&_8 IN _2,
'Table'[column],BLANK()
)

2. resultado.

v-yangliu-msft_0-1617614675466.png

Puede descargar el archivo PBIX desde aquí.

Saludos

Liu Yang

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

No @VistaDee,

Estos son los pasos que puede seguir:

1. Crear columna calculada

flag =
var _1={"A","B","C","D","E","F","G","H","I","J","K","M","L","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}
VAR _2={0,1,2,3,4,5,6,7,8,9}
var _5=IF(ISERROR(VALUE(MID('Table'[column],5,1))),BLANK(),VALUE(MID('Table'[column],5,1)))
var _6=IF(ISERROR(VALUE(MID('Table'[column],5,1))),BLANK(),VALUE(MID('Table'[column],6,1)))
var _7=IF(ISERROR(VALUE(MID('Table'[column],5,1))),BLANK(),VALUE(MID('Table'[column],7,1)))
var _8=IF(ISERROR(VALUE(MID('Table'[column],5,1))),BLANK(),VALUE(MID('Table'[column],8,1)))
RETURN
IF(LEFT('Table'[column],1) IN _1&&MID('Table'[column],2,1) IN _1&&MID('Table'[column],3,1) IN _1&&MID('Table'[column],4,1) IN _1&&
_5 IN _2 && _6 IN _2 && _7 IN _2 &&_8 IN _2,
'Table'[column],BLANK()
)

2. resultado.

v-yangliu-msft_0-1617614675466.png

Puede descargar el archivo PBIX desde aquí.

Saludos

Liu Yang

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

Syndicate_Admin
Administrator
Administrator

No hay @VistaDee

Entiendo el código SQL, pero ¿podría lograr lo mismo comprobando que la cadena no contiene un - ?

Para crear una columna n DAX, esto sería

Column = IF(NOT(CONTAINSSTRING('Table1'[ProjectCode], "-")),'Table1'[ProjectCode])

saludos

Phil

Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group!

MBAS on Demand

Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks

MBAS Attendee Badge

Claim Your Badge & Digital Swag!

Check out how to claim yours today!

secondImage

Are You Ready?

Test your skills now with the Cloud Skills Challenge.

Top Solution Authors