DLookUp para hacer coincidir los datos con los datos del mes anterior


0

La larga historia aquí es que tengo datos de Inicio a fecha, y me gustaría extraer datos de mes a fecha usando esta lógica: ITD_Current - ITD_Previous = MTD_Current. Estoy pensando que algún tipo de DLookUp Podría ayudar con esto.

La forma en que se estructuran los datos es así:

Company Code | Store Number (multiple store # to a company code) | Date (yyyymm) | ITD Data

Mi primer experimento fue hacer una clave única para cada fila usando

 [Company Code] & [Store Number] & [Date]

que llamé Key_Current. Entonces hice un Key_Previous columna que sería el formato exacto como se muestra arriba, pero con el valor de la fecha establecido en un mes. Luego fui a crear una función de DLookUp como esta:

DLookUp("[ITD Data]","Table",[Key_Current]=[Key_Prev])

Claramente, esto no funciona, pero espero que alguien pueda entender a qué estoy tratando de llegar. Lo que necesito es tirar de la columna de inicio hasta la fecha anterior, y relacionarla con la columna de inicio hasta la fecha actual. Luego puedo expandir la fórmula para restar la corriente de la anterior.

Tiene alguna idea sobre esto? ¡Gracias!

Respuestas:


0

La condición debe ser pasada como una cadena.

DLookUp("[ITD Data]", "Table", "[Key_Current]=[Key_Prev]")

Sin embargo, la clave actual nunca será como la clave anterior, por lo que nunca produce ningún resultado.

Un simple DLookUp no funcionará, ya que opera solo en una sola fila. Suponiendo que conoce la clave de los datos actuales, puede hacer esto

Dim currentKey As String, prevKey As String

currentKey = <somehow get this key>
prevKey = DLookUp("[Key_Prev]", "Table", "[Key_Current]='" & currentKey &"'")
prevData = DLookUp("[ITD Data]", "Table", "[Key_Current]='" & prevKey &"'")

Probablemente una mejor manera de hacerlo es hacer una consulta.

SELECT A.*, A.[ITD Data] - Nz(B.[ITD Data]) As MTG_Current
FROM
    Table A
    LEFT JOIN Table B
        ON A.[Key_Prev] = B.[Key_Current]

Puedes unir la tabla a sí misma para comparar diferentes filas.


La mejor manera de lograr esto fue definitivamente la consulta. ¡Qué solución más elegante! Gracias.
gflowers
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.