DLookUp para comparar dados com dados do mês anterior

0

A longa história aqui é que eu tenho criação para data de dados, e gostaria de extrair dados mensais a partir dele usando essa lógica: ITD_Current - ITD_Previous = MTD_Current . Estou pensando que algum tipo de DLookUp poderia 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 única para cada linha usando

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

que eu chamei de Key_Current. Em seguida, criei uma coluna Key_Previous , que seria o formato exato acima, mas com o valor de data definido em um mês. Então fui criar uma função DLookUp assim:

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

Isso claramente não está funcionando, mas espero que alguém possa entender o que estou tentando entender. O que eu preciso é puxar a coluna de início até a data anterior e combiná-la com a coluna de início até a data atual. Eu posso então expandir a fórmula para subtrair a corrente da anterior.

Alguma opinião sobre isso? Obrigada!

    
por gflowers 02.11.2017 / 22:59

1 resposta

0

A condição deve ser passada como string.

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

No entanto, a chave atual nunca será como a chave anterior, então isso nunca produz nenhum resultado.

Um simples DLookUp não funcionará, pois opera somente 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, uma maneira melhor 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 mesmo para comparar linhas diferentes.

    
por 02.11.2017 / 23:04