Ir ao conteúdo

Excel Criando formula condicional SE no Access


Ir à solução Resolvido por josequali,

Posts recomendados

Postado

Boa tarde! Tenho a seguinte situação.

 

Criei um banco de dados no Access e preciso condicionar as colunas a coluna Status. Esse mesmo critério consigo elaborar no excel (modelo em anexo), mas no access nao consegui, um dos motivos é que não consigo achar a opcao Calculado no Access e o outro é porque também sou inexperiente no Access.

 

No excel eu elaborei a seguinte situação:

Tenho seis colunas.

Primeira coluna: NC critica

Segunda coluna: QUEMVAIFAZER

Terceira coluna: ATEQUANDO

Quarta coluna: DESCRICAO

Quinta coluna: MOTIVODOCANCELAMENTO

Sexta coluna: STATUSDAIMPLEMENTACAO

 

A minha formula se verifica as seguintes situações

 

1) Se a coluna NC CRITICA a resposta for igual a Não então a coluna Statusdaimplementacao deve ficar vazia

2) Se a coluna MOTIVODOCANCELAMENTO tiver algo descrito então a coluna Statusdaimplementacao deve exibir a palavra  cancelado

3) Se a coluna DESCRICAO tiver algo descrito então a coluna Statusdaimplementacao deve exibir a palavra  Concluído

4) Se a coluna ATEQUANDO a data for igual ou inferior a hoje + 10 dias, então o  Statusdaimplementacao deve exibir a palavra  Cronograma comprometido

5) Se a coluna ATEQUANDO a data for igual ou inferior a hoje + 6 dias, então o  Statusdaimplementacao deve exibir a palavra  Atrasado recuperável

6) Se a coluna QUEMVAIFAZER for igual a Vazio então o  Statusdaimplementacao deve exibir a palavra  Não iniciado

7) Se a coluna QUEMVAIFAZER for igual estiver preenchida então o  Statusdaimplementacao deve exibir a palavra  Em execução

 

Formula no excel

=SE(CRÍTICA?]]="Não";"";
SE(dados3[[#Esta Linha];[CANCELAMENTO DA IMPLEMENTAÇÃO]]<>"";"Cancelado";
SE(dados3[[#Esta Linha];[DESCRIÇÃO DA IMPLEMENTAÇÃO]]<>"";"Concluído";
SE(E([ATEQUANDO]<>"";HOJE()>[ATEQUANDO]+10);"Cronograma comprometido";
SE(E([ATEQUANDO]<>"";HOJE()>dados3[[#Esta Linha];[ATEQUANDO]]+6);"Atrasado recuperável";
SE([QUEMVAIFAZER]<>"";"Em execução";"Não iniciado"))))))

 

 

Segue em anexo a planilha excel com as formulas e colunas e o banco de dados no access com as colunas. Desde já agradeço a ajuda de todos :D 

Projeto teste.rar

Postado

@Muca Costa gostaria que aparece-se na coluna da tabela. Como poderia ser feito? Se poder da uma explicação sou meio leigo, só para eu aprender rs tenho que adaptar para o meu modelo. trabalho com Access no formato mdb (2000-2003). Desde já agradeço a ajuda e disponibilidade :D 

  • 3 semanas depois...
Postado

@Muca Costa Boa tarde! tentei fazer a adaptação para outro projeto mas não sei o que deu errado.

 

Criei um banco de dados no Access e preciso condicionar as colunas a coluna STATUSDODOCUMENTO. Esse mesmo critério consigo elaborar no excel (modelo em anexo), mas no access nao consegui. Tentei seguir a mesma logica do tópico #2 mas não deu certo, pois aparece uma mensagem de error.

 

A minha formula no Excel se verifica as seguintes situações:

 

·         Se a DATADAREVISAO for igual a vazio a coluna STATUSDODOCUMENTO deve exibir a mensagem “Em elaboração”

·         Se hoje for maior que a coluna PROXIMAREVISAO  então a coluna STATUSDODOCUMENTO deve exibir a mensagem “Vencido”

·         Se hoje faltar menos de 30 dias para a PROXIMAREVISAO então a coluna STATUSDODOCUMENTO deve exibir a mensagem “Vencendo”

·         Se hoje faltar mais de 30 dias para a PROXIMAREVISAO então a coluna STATUSDODOCUMENTO deve exibir a mensagem “Vencendo”

 

FORMULA NO EXCEL 

=SE([DATADAREVISAO]="";"Em elaboração";
SE(HOJE()>[PROXIMAREVISAO];"Vencido";
SE(HOJE()>=[PROXIMAREVISAO]-30;"Vencendo";
SE(HOJE()-[PROXIMAREVISAO]+30;"Vigente"))))

 

 

Preciso realizar o mesmo modelo de formula condicional no ACCESS mas não deu certo. Criei a tabela de consulta e criei a seguinte formula mas está dando #Erro.

 

SELECT TabDocumentos.DATADAREVISAO, TabDocumentos.PROXIMAREVISAO, 

IIf([DATADAREVISAO]="","Em elaboração",

IIf(Now()>[PROXIMAREVISAO],"Vencido",

IIf(Now()>[PROXIMAREVISAO]-30,"Vencendo",

IIf(Now()-[PROXIMAREVISAO]+30,"Vigente"))))


 AS STATUSDODOCUMENTO

FROM TabDocumentos;

 

poderia me ajudar? Desde já agradeço a ajuda e a disponibilidade :D 

 

Segue em anexo o projeto.

 

 

PROJETO.rar

Postado

substitua Agora() por Data()

 

STATUSDODOCUMENTO: SeImed([DATADAREVISAO]="";"Em elaboração";SeImed(Data()>[PROXIMAREVISAO];"Vencido";SeImed(Data()>[PROXIMAREVISAO]-30;"Vencendo";SeImed(Data()-[PROXIMAREVISAO]+30;"Vigente"))))

 

Aqui SeImed(Data()-[PROXIMAREVISAO]+30;"Vigente" , o resultado de Data()-[PROXIMAREVISAO]+30 será um número e não data; também está faltando a condição (resultado MAIOR, MENOR ou IGUAL que algum critério)

  • Amei 1
Postado

@muca costa fiz assim

 

select tabdocumentos.datadarevisao, tabdocumentos.proximarevisao, 

iif([datadarevisao]="","em elaboração",

iif(date()>[proximarevisao],"vencido",


iif(date()>[proximarevisao]<30,"vencendo",

iif(date()-[proximarevisao]>30,"vigente")))) as statusdodocumento



from tabdocumentos;

 

ou 

 

STATUSDODOCUMENTO: 

SeImed([DATADAREVISAO]="";"Em elaboração";
SeImed(Data()>[PROXIMAREVISAO];"Vencido";
SeImed(Data()>[PROXIMAREVISAO]<30;"Vencendo";
SeImed(Data()-[PROXIMAREVISAO]>30;"Vigente"))))

 

  • Solução
Postado

@Muca Costa Não da mais erro. Muito obrigado :D Consegui resolver. A formula estava dando erro porque estava usando a expressão vazio do excel (""), sendo que aqui o usando é "É Nulo". E também corrigi algumas expressões porque estavam formuladas de maneira errada.

 

STATUSDODOCUMENTO: 
SeImed([DATADAREVISAO] É Nulo;"Em elaboração";
SeImed(Agora()>[PROXIMAREVISAO];"Vencido";
SeImed(Agora()>[PROXIMAREVISAO]-30;"Vencendo";
SeImed(Agora()<[PROXIMAREVISAO]+30;"Vigente"))))

 

usei esses links para tentar entender melhor caso alguém queira ver.

 

Link 1

https://forum.scriptbrasil.com.br/topic/178124-resolvido alerta-de-data/

 

Link 2

https://www.maximoaccess.com/t2412-resolvidointerpretacao-de-expressoes-para-um-seimed

 

Link 3

https://support.microsoft.com/pt-br/office/exemplos-de-critérios-de-consulta-3197228c-8684-4552-ac03-aba746fb29d8

 

Link 4

https://support.microsoft.com/pt-pt/office/função-somdata-63befdf6-1ffa-4357-9424-61e8c57afc19

 

Link 5

 

https://support.microsoft.com/pt-br/office/exemplos-de-expressões-d3901e11-c04e-4649-b40b-8b6ec5aed41f

 

 

Arquivo em anexo:

 

 

 

 

 

 

 

 

Status doc.rar

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...