Forum Discussion
Problema de forma de datos
hola expertos,
Necesita un poco de ayuda lo que he estado tratando de resolver forwhole día, pero no pudo.
columna1 Fecha1 Fecha2
Cliente1 03/12/2010 06/09/2013
Custermer1 06/09/2018 05/03/2010
Cliente1 03/12/2010 06/06/2012
Cliente2 09/11/2017 07/06/2017
Cstomer2 05/11/2018 25/09/2018.......
Salida que estoy buscando
columna1 fecha1 fecha2
cliente1 03/12/2010 05/03/2010
cliente1 06/09/2018 BLNK
Cliente1 03/12/2010 05/03/2010
Cliente2 09/11/2017 25/09/2018
Cliente2 05/11/2018 25/09/2018
así que básicamente, para cada cliente, con cada fila en el campo Date1, debe buscar el campo after date from date2 más cercano para el cliente respectivo, si no se encuentra ninguno, luego devolver en blanco.
dax/M: ¿algo para que funcione? Gracias por el hep de antemano.
Este es un poco de DAX para una columna calculada
Tabla[NewDate2] =
VAR _CurrentDate1 = 'Tabla'[Fecha1]devoluciónCALCULAR(MIN('Tabla'[Fecha2]),ALLEXCEPT('Tabla', 'Tabla'[Columna1]),'Tabla'[Fecha2] > _CurrentDate1)
3 Replies
- Syndicate_Admin
Administrator
Este es un poco de DAX para una columna calculada
Tabla[NewDate2] =
VAR _CurrentDate1 = 'Tabla'[Fecha1]devoluciónCALCULAR(MIN('Tabla'[Fecha2]),ALLEXCEPT('Tabla', 'Tabla'[Columna1]),'Tabla'[Fecha2] > _CurrentDate1)- Syndicate_Admin
Administrator
dax está funcionando, acabo de agregar > = ya que había algunas fechas iguales. Muchas gracias
- Syndicate_Admin
Administrator
Creo que primero necesitaría aplanar los datos, ya sea en SQL (siempre es mejor realizar esto en la fuente) o en M.
A. Crear dos tablas:
1) Fecha del cliente (a partir de la fecha 1)
columna1 Fecha
Cliente1 03/12/2010
Custermer1 06/09/2018
...
2) Fecha del cliente (a partir de la fecha 1)
columna1 Fecha
Cliente1 06/09/2013
Custermer1 05/03/2010
...
B. Unión de los mismos:
columna1 Fecha
Cliente1 03/12/2010
Custermer1 06/09/2018
Cliente1 06/09/2013
Custermer1 05/03/2010
C. Quitar duplicados y ordenar por cliente y fecha.
Sería útil agregar una columna de número de fila.
D. Crear una tabla customer-date 1- date 2.
En SQL, puede hacerlo uniendo la tabla en sí misma:
De <Tabla>T1
LEFT JOIN <Tabla>T2
en
T1. [rownumber] = T2. [rownumber]+1 Y T1. [columna1]=T2. [columna1]
Eso debería darle el resault deseado.
Si no usa SQL, esto podría ayudar a obtener la fila anterior.
Espero que esto ayude.