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
PrathSable
Advocate II
Advocate II

Dividir la fila anterior por la siguiente fila

Hola, chicos

Tengo el siguiente conjunto de datos:

FechaPalabra claveContar
01-01-2020Abcd5
01-01-2020DEFG2
01-01-2020HIGK3
01-01-2020LMNO0
01-01-2020PQRS3
01-01-2020TUVW5
01-01-2020Xyz5
02-01-2020Abcd3
02-01-2020DEFG4
02-01-2020HIGK0
02-01-2020LMNO6
02-01-2020PQRS10
02-01-2020TUVW53
02-01-2020Xyz12

Para cada palabra clave, necesito dividir la fecha anterior de la palabra clave por la siguiente fecha de palabra clave para obtener el % de aumento. Esto tiene que ser dinámico. Por ejemplo, para la palabra clave ABCD, me gustaría dividir 5, que es el recuento que es para 01-01-2020 POR 3, que es el recuento de 02-02-2020. Por lo tanto, será 5/3 - 67.667%

Intenté trabajar en ello, pero no tuve éxito. No quiero hacer este cálculo en Excel es que va a actualizar el archivo de Excel cada vez que los nuevos datos vienen en, así que hay una manera de lograrlo a través de una columna personalizada y no ser una medida. Porque entonces me gustaría multiplicar este valor con un nuevo registro individual para obtener el cálculo individual, ya que tengo una gran cantidad de datos alrededor (1M)

Cualquier ayuda en esto es realmente apreciada...

saludos

PrathSable

17 REPLIES 17
speedramps
Super User
Super User

Hola Prath
Por favor considere esta solución

Ya sea mediante el uso de las funciones de tabla Query Group By o DAX, haga lo siguiente

Cree un subconjunto "ahora" de la tabla original con solo el valor más reciente por palabra clave.

Cree un subconjunto "resto" de la tabla original con todos los registros excepto los registros del subconjunto anterior.

Cree un subconjunto "antes" de la tabla "remainder" con solo el valor más reciente por palabra clave.

Ahora puede informar "ahora" - "antes" por palabra clave.

nandukrishnavs
Super User
Super User

@PrathSable

Su ejemplo es un poco confuso. 5/3 67.667?

Prueba esto

Percentage = 
var nextDate=MINX(FILTER(ALL('Table'),'Table'[Keyword]=EARLIER('Table'[Keyword])&&'Table'[Date]>EARLIER('Table'[Date])),'Table'[Date])
var nextDateValue= SUMX(FILTER(ALL('Table'),'Table'[Date]=nextDate&&'Table'[Keyword]=EARLIER('Table'[Keyword])),'Table'[Count])
return DIVIDE(nextDateValue,[Count],BLANK())

Es posible que tenga que ajustar la lógica en función de su escenario real.



¿Respondí a tu pregunta? ¡Marca mi puesto como solución!
Apreciar con un kudos
🙂


Regards,
Nandu Krishna

amitchandak
Super User
Super User

@PrathSable , Probar como nueva columna


Ultima fecha: maxx(filter(table,[date]<earlier([date]) && [keyword] ?earlier([keyword])),[date])
Ration with Last - divide([Count],maxx(filter(table,[date]-earlier([Last Date ]) && [keyword] ?earlier([keyword]]),[Count]))

En una medida esto cómo se obtiene el último valor con la ayuda de la tabla de fechas


Last Day Non Continous ? CALCULATE(sum('Table'[Count]),filter(all('Date'),'Date'[Date] ?MAXX(FILTER(all('Date'),'Date'[Date]<max('Date'[Date]]),Table['Date'])))
Día detrás de las Ventas - CALCULATE(SUM(Table[Count]),dateadd('Date'[Date],-1,Day))

Hola @amitchandak : Esto es cercano: Pero lo que realmente quiero lograr es:

Capture.PNGValores reales para encontrar

Para nuestra fórmula para 02-01-2020 obtenemos el porcentaje de división para 01-02-2020. ¿Alguna sugerencia sobre cómo lograr lo anterior?

saludos

PrathSable

Hola @PrathSable ,

Puede utilizar esta medida

Valor dividido ?
VAR previousDate_
CALCULAR (
MAX ( 'Tabla'[Fecha] ), FILTRO(
ALLEXCEPT ( 'Table','Table'[Keyword] ),
'Tabla'[Fecha] < MAX ( 'Tabla'[Fecha] ))
)
VAR previousValue_
CALCULAR (
MAX( 'Tabla'[Recuento] ), FILTRO(
ALLEXCEPT ( 'Table', 'Table'[Keyword] ),
'Tabla'[Fecha] - previousDate_
))
devolución
DIVIDE ( previousValue_, MAX('Table'[Count])) * MAX('Table'[Actual])
1.jpg

saludos
Harsh Nathani

¿Respondí a tu pregunta? ¡Marca mi puesto como solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgarhacia arriba)

@PrathSable

Pruebe esta columna calculada

Percentage = 
var nextDate=MAXX(FILTER(ALL('Table'),'Table'[Keyword]=EARLIER('Table'[Keyword])&&'Table'[Date]<EARLIER('Table'[Date])),'Table'[Date])
var nextDateValue= SUMX(FILTER(ALL('Table'),'Table'[Date]=nextDate&&'Table'[Keyword]=EARLIER('Table'[Keyword])),'Table'[Count])
return DIVIDE(nextDateValue,[Count]*'Table'[Actual],BLANK())

Capture.JPG



¿Respondí a tu pregunta? ¡Marca mi puesto como solución!
Apreciar con un kudos
🙂


Regards,
Nandu Krishna

@nandukrishnavs :

Creo que te confundí, no quiero el porcentaje.

Sólo quiero dividir el registro anterior con el último y luego que tendría que multiplicarse con un valor correspondiente.

Capture3.PNG¿Quieres lograr esto?

¿Sugerencias?

saludos

PrathSable

@PrathSable

Está bien, lo tengo.

Val =
VAR nextDate =
    MAXX (
        FILTER (
            ALL ( 'Table' ),
            'Table'[Keyword]
                = EARLIER ( 'Table'[Keyword] )
                && 'Table'[Date]
                    < EARLIER ( 'Table'[Date] )
        ),
        'Table'[Date]
    )
VAR nextDateValue =
    SUMX (
        FILTER (
            ALL ( 'Table' ),
            'Table'[Date] = nextDate
                && 'Table'[Keyword]
                    = EARLIER ( 'Table'[Keyword] )
        ),
        'Table'[Count]
    )
RETURN
    DIVIDE (
        nextDateValue,
        [Count],
        BLANK ()
    ) * 'Table'[Actual]

Capture.JPG



¿Respondí a tu pregunta? ¡Marca mi puesto como solución!
Apreciar con un kudos
🙂


Regards,
Nandu Krishna

@PrathSable

Simplemente cambie el orden en el DIVIDE () entonces. Tendrás que multiplicar el resultado por la columna "real" si eso es lo que necesitas

Calc Column =
VAR previousDate_ =
    CALCULATE (
        MAX ( Table1[Date] ),
        ALLEXCEPT ( Table1, Table1[Keyword] ),
        Table1[Date] < EARLIER ( Table1[Date] )
    )
VAR previousValue_ =
    CALCULATE (
        DISTINCT ( Table1[Count] ),
        ALLEXCEPT ( Table1, Table1[Keyword] ),
        Table1[Date] = previousDate_
    )
VAR currentValue_ = Table1[Count]
RETURN
    DIVIDE ( previousValue_, currentValue_ )

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar felicitaciones si los mensajes son útiles.

Póngase en contacto conmigo en privado para obtener asistencia con cualquier necesidad de BI a gran escala

Salud

SU18_powerbi_badge

Hola @AlB ,

Esto funciona, supongo que hay algo mal en mis datos que necesito averiguar.

Sin embargo, ¿es posible crear una columna personalizada para el mismo período del año pasado? algo como esto:

Dinámico para diferentes palabras clave, de modo que la agregación sigue siendo perfecta para mí para calcular porcentajes de cambio.

FYI: Hay datos de varios años, probé sameperiodlastyear, previousyear; pero no funciona en la columna calculada 😞

Capture4.PNGDinámico para diferentes palabras clave para diferentes fechas

Agradezca su ayuda de antemano

saludos

PrathSable

@PrathSable

por el valor del año pasado:

Calculated Column =
VAR previousYearDate_ =
    DATE ( YEAR ( Table1[Date] ) - 1, MONTH ( Table1[Date] ), DAY ( Table1[Date] ) )
RETURN
    CALCULATE (
        DISTINCT ( Table1[Count] ),
        ALLEXCEPT ( Table1, Table1[Keyword] ),
        Table1[Date] = previousYearDate_
    )

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar felicitaciones si los mensajes son útiles.

Póngase en contacto conmigo en privado para obtener asistencia con cualquier necesidad de BI a gran escala

Salud

SU18_powerbi_badge

Hola @AlB ,

Gracias por esto. Una última columna calculada y una medida: Total en ejecución para las fechas de las palabras clave Individual.

Intenté crear la medida rápida total de ejecución, pero no funciona como se desea, ya que solo funciona, ya que necesito calcular una columna personalizada Total de ejecución o una medida que tendrá en cuenta las palabras clave también.

Al igual que el total de Running para 2020 será 2018+2019+2020

Usé lo siguiente:

Volumen de búsqueda diario que se ejecuta en Fecha ?
CALCULAR(
SUM('Master Keywords and Search Volume'[Daily Search Volume]),
FILTRO (
ALLSELECTED('Palabras clave maestras y volumen de búsqueda'[Fecha]),
ISONORAFTER('Palabras clave maestras y volumen de búsqueda'[Fecha], MAX('Palabras clave maestras y volumen de búsqueda'[Fecha]), DESC)
)
)

Capture5.PNGNecesidad de calcular el total de ejecución

Realmente aprecia tu ayuda en esto.

saludos

PrathSable

@PrathSable ,

Puede crear una columna calculada.

Total de ejecución: CALCULATE(SUM(Table8[Count]), FILTER(ALLEXCEPT(Table8,Table8[Keyword]), Table8[Date] <-EARLIER(Table8[Date])))
1.jpg

saludos
Harsh Nathani

¿Respondí a tu pregunta? ¡Marca mi puesto como solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgarhacia arriba)

Hola a todos

En la continuación del cálculo anterior: Tengo otra consulta que se refiere a la misma. Necesito derivar un tipo diferente de solución que necesita ser trabajada:

Por ejemplo, a continuación: Quiero saber si esta solución es alcanzable a través de powerbi

FechaPalabras claveVolumen de palabras claveVolumen de búsquedaPromedio por mesTotal de registros por mesVolumen de búsqueda realNúmero de semana
03-05-2018Abcd531660000052.548387131537345.0018
03-05-2019Abcd541660000054315375234.0018
03-05-2020Abcd911660000090.6451612931537580.0718

Lo que necesito para achive es:

FechaPalabras claveVolumen de palabras claveVolumen de búsquedaPromedio por mesTotal de registros por mesVolumen de búsqueda realNúmero de semana
03-05-2018Abcd531660000052.548387131313096.0918
03-05-2019Abcd54166000005431319003.5618
03-05-2020Abcd911660000090.6451612931537580.07

18

La tabla anterior se deriva del cálculo siguiente: Tengo que considerar la fecha máxima (que sería cada fecha para cada palabra clave

So basado en el volumen de búsqueda real máximo: El volumen de búsqueda se dividirá por la palabra clave del mismo día: Para. E.g. 03-05-2020: Así que 537580.07 / 91 a 5907.47. Este valor que se deriva se multiplicará por la palabra clave de años anteriores para obtener el volumen de búsqueda real del año anterior: Así que cuando multipliquemos 5907.47 a 54 que es el volumen en 03-05-2018 ; Obtengo el valor como 319003.3. Necesito lograr esto dinámicamente para todas las palabras clave.

El archivo de Excel se almacena aquí: https://drive.google.com/file/d/1QZQzmyQmXSGpZF_R8MUsorrO36AIF8pT/view?usp=sharing

Pero lo único aquí es: El año actual debe tener el valor real donde-como los años anteriores tendrán el valor calculado en una misma columna. ¿Esto se puede lograr en PowerBI?

saludos

PrathSable

Hola @PrathSable ,

En caso de que desee utilizar Columnas calculadas.

2.JPG

Fecha de la fecha anterior ?
CALCULAR (
MAX ( 'Tabla'[Fecha] ), FILTRO(
ALLEXCEPT ( 'Table','Table'[Keyword] ),
'Tabla'[Fecha] < EARLIER( ('Tabla'[Fecha] ))
)
)
Valor anterior ?
CALCULAR (
MAX('Tabla'[Recuento]) , FILTRO(
ALLEXCEPT ( 'Table', 'Table'[Keyword] ),
'Tabla'[Fecha] - EARLIER('Tabla'[Fecha anterior])
))
Dividir Val - DIVIDE ('Tabla'[Valor anterior],'Tabla'[Contar])
Val Final á 'Tabla'[Dividir Val] * 'Tabla'[Actual]

saludos
Harsh Nathani

¿Respondí a tu pregunta? ¡Marca mi puesto como solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgarhacia arriba)

AlB
Super User
Super User

Hola @PrathSable

Cree una columna calculada en la tabla

Calc Column =
VAR previousDate_ =
    CALCULATE (
        MAX ( Table1[Date] ),
        ALLEXCEPT ( Table1, Table1[Keyword] ),
        Table1[Date] < EARLIER ( Table1[Date] )
    )
VAR previousValue_ =
    CALCULATE (
        DISTINCT ( Table1[Count] ),
        ALLEXCEPT ( Table1, Table1[Keyword] ),
        Table1[Date] = previousDate_
    )
VAR currentValue_ = Table1[Count]
RETURN
    DIVIDE ( currentValue_, previousValue_ )

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar felicitaciones si los mensajes son útiles.

Póngase en contacto conmigo en privado para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

Hola @AlB ,

No estoy seguro, lo que estoy haciendo mal: Utilicé el mismo cálculo que proporcionó, pero aquí está la salida en amarillo que estoy recibiendo en mi archivo real:

Capture2.PNG

¿Alguna sugerencia?

saludos

PrathSable

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.