DLookUp para combinar dados com os dados do mês anterior


0

A longa história aqui é que eu tenho Inception dados atualizados, e eu gostaria de extrair mês para dados de data a partir dele usando esta lógica: ITD_Current - ITD_Previous = MTD_Current. Eu estou pensando que algum tipo de DLookUppoderia ajudar com isso.

A maneira como os dados são estruturados é assim:

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

Minha primeira experiência foi criar uma chave exclusiva para cada linha usando

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

que chamei de Key_Current. Fiz então uma Key_Previouscoluna com o formato exato, como acima, mas com o valor da data atrasado em um mês. Fui então criar uma função DLookUp algo como isto:

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

Claramente isso não está funcionando, mas espero que alguém possa entender o que estou tentando entender. O que eu preciso é puxar a coluna de criação anterior para data e combiná-la com a coluna de criação atual para data. Posso então expandir a fórmula para subtrair a corrente da anterior.

Alguma idéia sobre isso? Obrigado!

Respostas:


0

A condição deve ser passada como sequência.

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

No entanto, a chave atual nunca será como a chave anterior, portanto nunca produz nenhum resultado.

Um simples DLookUpnão funcionará, pois opera apenas em uma única linha. Supondo que você saiba a chave dos dados atuais, você pode fazer isso

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 &"'")

Provavelmente, a melhor maneira de fazer isso é fazer uma 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]

Você pode unir a tabela a si mesma para comparar linhas diferentes.


A melhor maneira de conseguir isso foi definitivamente a consulta. Que solução elegante! Obrigado.
gflowers
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.