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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
natabird3
Continued Contributor
Continued Contributor

suma de valores basados en texto diferente en otra columna - medida dinámica

Hola a todos,

Estoy teniendo un problema, que estaba pensando que sería bastante fácil de resolver, pero resultó ser difícil crear una medida para. Quiero crear algunas medidas que segmenten específicamente mis diferentes canales de ventas por una palabra clave. En un sitio web cuando se compra un producto puede provenir de Facebook, pero también Facebook ref, Facebook int, etc. Me gustaría crear una medida que filtrará todo el tráfico procedente de "Facebook". Si quería obtener el valor en un filtro es bastante fácil, filtro de avance y contiene facebook, sin embargo, ¿cómo podría hacer esto como una medida dinámicamente, como me gustaría añadir algunos de los que en un gráfico de barras visual comparando los diferentes canales.

La muestra de los datos tendría este aspecto:

UsuariosMedio de origen
50000Facebook/ref
40000Facebook.int
235236Ebay.dasf
300Amazon.com
352Facebook,safasga
3500Amazon
2352Ebay

Salida i necesitaría la medida para obtener todos los usuarios para cualquier mención de facebook (en este caso 90352), entonces si creé otra medida para el Amazonas sería 3800. Y potencialmente necesitaría una medida que resuma todo lo que queda, pero creo que sería sólo la diferencia entre las medidas creadas y el total.

Espero que puedas ayudar.

Gracias de antemano por la ayuda.

8 REPLIES 8
v-gizhi-msft
Community Support
Community Support

Hola

De acuerdo con su descripción, por favor tome los siguientes pasos:

1)Cree primero una tabla de segmentación de datos:

110.PNG

2)Pruebe esta medida:

Measure = 
SUMX (
    DISTINCT ( 'Table'[Source Medium] ),
    IF (
        LEFT (
            'Table'[Source Medium],
            LEN ( SELECTEDVALUE ( 'Slicer Table'[Slicer Value] ) )
        )
            = SELECTEDVALUE ( 'Slicer Table'[Slicer Value] )
            && SELECTEDVALUE ( 'Slicer Table'[Slicer Value] ) <> BLANK (),
        CALCULATE ( SUM ( 'Table'[Users] ) )
    )
)

Al seleccionar un valor en la segmentación de datos, el resultado muestra:

111.PNG

Aquí está mi archivo pbix de prueba:

pbix

Espero que esto ayude.

Saludos

Giotto Zhi

Estimado Giotto @v-gizhi-msft ,

Gracias por la respuesta, sin embargo, no quería crear una segmentación de datos ya que lo que quiero hacer es comparar los valores en un gráfico de barras uno al lado del otro. Así que lo que necesitaría es una medida distinta que me dará el valor para cada uno (término clave que estoy serrando en la columna media de origen), no una segmentación de datos que puede ir de una a otra, lo siento, pero esto no está resolviendo mi problema.

Hola

Por favor, pruebe esta columna calculada:

Category = 
var t = MinX(ADDCOLUMNS({",","/","."},"Position",FIND([Value],'Table'[Source Medium],1,9999)),[Position])
REturn LEFT([Source Medium],IF(t= 9999,LEN('Table'[Source Medium]),t-1))

Elija esta columna y [Usuarios] como un gráfico de barras agrupado, muestra:

121.PNG

Espero que esto ayude.

Saludos

Giotto Zhi

Estimado Giotto @v-gizhi-msft,

Tal vez sólo soy yo, pero ¿en qué parte de la solución estoy seleccionando qué valor filtrar? Esto muestra todo como si pusiera la columna media de origen o ¿qué hace?

Categoría ?
var t á MinX(ADDCOLUMNS('",",",","."',"Facebook",FIND([Value],'Traffic Source'[Source / Medium],1,999999)),[Facebook])
REturn LEFT([Fuente / Medio],IF(t s 999999,LEN('Fuente de tráfico'[Fuente / Medio]),t-1))
amitchandak
Super User
Super User

Trate como

measure =
var _sel = allselected(values(Table[Source Medium]))
return
calculate(count(Table[User]),Filter(all(Table),search(_sel,Table[Source Medium] ,1,0)>0))



measure =
var _sel = maxx(allselected(Table),(Table[Source Medium]))
return
calculate(count(Table[User]),Filter(all(Table),search(_sel,Table[Source Medium] ,1,0)>0))

Mejor mover el medio de origen a una nueva tabla y luego unirse a él utilizar este tipo de filtro. De lo contrario, todos eliminarán todos los filtros

Fuente: distinto (Tabla[Medio de origen])

Gracias por la respuesta rápida @amitchandak , sin embargo en la solución propuesta no entiendo cómo filtro para decir facebook o amazon valores que están en la columna de origen / medio? Estoy tratando de seleccionar los valores de usuario reales para cada uno de los términos específicos, no un recuento de cuántas veces aparece en la columna de medio de origen, espero que esto explique mejor.

Puedes probar

Facebook =
var _sel = "Facebook"
return
calculate(sum(Table[User]),Filter(all(Table),search(_sel,Table[Source Medium] ,1,0)>0))

OR

Facebook =
var _sel = "Facebook"
return
calculate(sum(Table[User]),Filter((Table),search(_sel,Table[Source Medium] ,1,0)>0))

Exactamente, lo que necesitaba gracias.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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