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
Anonymous
Not applicable

Cuente el valor total en una columna como 1.

Estoy tratando de encontrar una manera de contar un valor total en una semana determinada como "1". Para ilustrar:

Persona Semana 1 Semana 2 Semana 3 Semana 4 Semana 5 Contar

A 6 8 9 3 4

B 6 8 9 4 3 5

C 6 9 2

Preferiblemente sólo tendría la cuenta en una medida, para que pueda mostrar un total junto al recuento de las semanas:

Person Total Weekcounter

Un 26 4

B 31 5

C 15 2

¿Cómo calculo tal cosa?

2 ACCEPTED SOLUTIONS
v-alq-msft
Community Support
Community Support

Hola, @TKA

Basándome en su descripción, creé datos para reproducir su escenario.

Mesa:

a2.png

Puede ir a 'Editor de consultas', hacer las semanas seleccionadas, hacer clic en 'Transformar' cinta de opciones > 'Columnas unpiot', luego 'Cerrar y aplicar'.

a1.png

a3.png

A continuación, puede crear dos medidas como se muestra a continuación.

Weekcounter = 
CALCULATE(
    DISTINCTCOUNT('Table'[Week]),
    FILTER(
        ALL('Table'),
        'Table'[Person] = SELECTEDVALUE('Table'[Person])
    )
)

Total = 
CALCULATE(
    SUM('Table'[Value]),
    FILTER(
        ALL('Table'),
        'Table'[Person] = SELECTEDVALUE('Table'[Person])
    )
)

Resultado:

a4.png

Saludos

Allan

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

View solution in original post

Ashish_Mathur
Super User
Super User

Hola

En caso de que desee una solución de editor de consultas, entonces este código M funciona

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Person", type text}, {"Week 1", Int64.Type}, {"Week 2", Int64.Type}, {"Week 3", Int64.Type}, {"Week 4", Int64.Type}, {"Week 5", Int64.Type}, {"Count", Int64.Type}}),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Person", "Count"}, "Attribute", "Value"),
    #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Attribute"}),
    #"Grouped Rows" = Table.Group(#"Removed Columns", {"Person"}, {{"Total", each List.Sum([Value]), type number}, {"Count", each List.Min([Count]), type number}})
in
    #"Grouped Rows"

Espero que esto ayude.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

View solution in original post

7 REPLIES 7
Ashish_Mathur
Super User
Super User

Hola

En caso de que desee una solución de editor de consultas, entonces este código M funciona

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Person", type text}, {"Week 1", Int64.Type}, {"Week 2", Int64.Type}, {"Week 3", Int64.Type}, {"Week 4", Int64.Type}, {"Week 5", Int64.Type}, {"Count", Int64.Type}}),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Person", "Count"}, "Attribute", "Value"),
    #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Attribute"}),
    #"Grouped Rows" = Table.Group(#"Removed Columns", {"Person"}, {{"Total", each List.Sum([Value]), type number}, {"Count", each List.Min([Count]), type number}})
in
    #"Grouped Rows"

Espero que esto ayude.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
v-alq-msft
Community Support
Community Support

Hola, @TKA

Basándome en su descripción, creé datos para reproducir su escenario.

Mesa:

a2.png

Puede ir a 'Editor de consultas', hacer las semanas seleccionadas, hacer clic en 'Transformar' cinta de opciones > 'Columnas unpiot', luego 'Cerrar y aplicar'.

a1.png

a3.png

A continuación, puede crear dos medidas como se muestra a continuación.

Weekcounter = 
CALCULATE(
    DISTINCTCOUNT('Table'[Week]),
    FILTER(
        ALL('Table'),
        'Table'[Person] = SELECTEDVALUE('Table'[Person])
    )
)

Total = 
CALCULATE(
    SUM('Table'[Value]),
    FILTER(
        ALL('Table'),
        'Table'[Person] = SELECTEDVALUE('Table'[Person])
    )
)

Resultado:

a4.png

Saludos

Allan

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

amitchandak
Super User
Super User

@TKA , busque la solución adjunta después de la firma.

Compruebe si hay unpivot en la transferencia de datos

Anonymous
Not applicable

@amitchandak Gracias por el apego. Pero, ¿cómo creó la columna de recuento? ¿Y la forma en que se configura la columna de recuento tiene en cuenta que 1 semana podría tener varias filas? Así, por ejemplo:

La persona A ha cronometrado 1 hora el día 1 y 4 horas el día 5 para la semana 1. El total de la semana 1 es de 5 horas, pero el recuento de semanas debe ser 1, no 2.

Así que básicamente la fórmula / columna tiene que comprobar si la columna de hora >0 para una semana determinada y luego contar esa semana para esa persona como 1. En Excel puedo pensar en al menos 5 maneras diferentes de hacer esto (ya sea agregando una columna o solo 1 fórmula más grande), pero en PBI estoy dibujando un espacio en blanco.

EDITAR: ¿No puedo simplemente hacer algo a lo largo de la línea de Count - COUNTROWS(FILTER(DURATION COLUMN, DURATION COLUMN [HOURS] > 0) como @Greg_Deckler sugerido? Quiero decir que la fórmula anterior no funciona para mí, ya que cuenta las líneas basadas en los días (aunque la matriz se basa en semanas), pero puedo imaginar que debe estar cerca de ella.

@TKA , puede tomar distinctcount. Mientras que el tiempo en blanco no se contará.

https://www.dropbox.com/s/e5mqtn3tm3eow7n/WeekwiseData.pbix?dl=0

Greg_Deckler
Super User
Super User

Bueno, normalmente probablemente desbloquee esas columnas de la semana y luego es sólo una cuestión de COUNTROWS pero si por alguna razón necesita los datos en ese formato, es un gran FEO IF(NOT(ISBLANK([columna])).). tipo de cosa. Feo. Votaría por unpivot.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
Anonymous
Not applicable

Si fuera por columnas de semana sin pivotar, ¿cómo lo haría? ¿Y en qué se diferencia COUNTROWS de agregar el valor a la matriz y establecerlo para que cuente?

Mis datos son horas de trabajo por día, que me gustaría "combinar" a la semana y luego contarlos como 1. Básicamente sólo quiero saber cuántas semanas una persona ha cronometrado horas en un cierto período de tiempo.

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.