Notifications
Clear all

Indicar STATUS de última ocorrência de um item na planilha.

17 Posts
2 Usuários
0 Reactions
4,023 Visualizações
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Bom dia, galera do Planilhando.

Vim com um problema que foi muito bem resolvido pelo noss amigo, Fernando Fernandes, no tópico http://www.planilhando.com.br/forum/viewtopic.php?f=20&t=8189.

A minha dúvida no tópico anterior era de como destacar células duplicadas a partir da segunda ocorrência. Minha planilha estava destacando todas as ocorrências duplicadas, só que com a primeira ocorrência. Aí, eu dei um jeito e funcionou com um

=SE(CONT.SE($A$1:A;A)=1;A***;"Duplicado")

.
Daí, tive uma outra situação pesada para ser resolvida. Essa formula ia destacar apenas por ocorrência na ordem em que se encontrava. Mas eu precisava destacar a primeira incidência de um ITEM de acordo com uma data.
O Fernando conseguiu resolver muito bem a questão:

=SE(MAIOR(($A$2:$A$1001*($B$2:$B$1001=$B2));CONT.SE($B$2:$B$1001;$B2))&$B2=$A2&$B2;"ITEM NOVO";ÍNDICE($C$2:$C$1001;CORRESP(MAIOR(($A$2:$A$1001*($B$2:$B$1001=$B2));CONT.SE($B$2:$B$1001;$B2))&$B2;$A$2:$A$1001&$B$2:$B$1001;0);1))

http://www.planilhando.com.br/forum/download/file.php?id=8633

Funcionou. Minha cabeça deu TILT na hora ao tentar ler a fórmula.

Daí eu fui analisando a fórmula toda e consegui entender como funciona a ideia. Na medida do possível. Pois sou iniciante.

E agora, pra me sacanear, o chefe pediu que eu busque o status anterior ao atual.

Tá. Daí começou a queimar a cabeça de novo...

-----------------------------------------------------------------------------------------

Vamos dizer que temos 5 registros.
com data crescente, mesmo

01.01.2013 - Item_A - Status_1
02.01.2013 - Item_B - Status_2
03.01.2013 - Item_C - Status_3
04.01.2013 - Item_D - Status_4
05.01.2013 - Item_E - Status_5

Digamos que a data é a coluna A, item é a coluca B e status a C. Logo...

Na fórmula anterior, vemos que ele faz uma busca a data e compara com a atual. Se for igual, é um item novo, se não, ele faz uma busca e trás o status que está na data mais antiga.

SE a menor data for igual a data atual (que seria a de origem), isso é porque é um item novo.

=SE(MAIOR(($A$1:$A$5*($B$1:$B$5=$B1));CONT.SE($B$1:$B$5;$B1))&$B1=$A1&$B1;"Novo item"; ....)

se o maior valor encontrado na função MAIOR, concatenado com B1 = a mesma data concatenado com B1, é um novo item.

CONT.SE($B$1:$B$5;$B1)

o CONT.SE vai trazer como resultado (seguindo o exemplo fictício apresentado anteriormente) a data mais antiga.

Visto que, seria
CONT.SE(de'01.01.2013':até'05.01.2013';encontre o 5º valor mais alto).
e seria 01.01.2013

E, SE 01.01.2013_Item1 for igual à 01.01.2013_Item1, é pq este é um item novo.

...

Tranquilo?

Mas para encontrar sempre o item anterior de cada ocorrência..

o valor k da fórmula =MAIOR(matriz,k) deve ser variável.

Tomando como exemplo o item anterior, que tem 5 registros, ele deveria buscar, para o Item_E, o Status_4.
Então, o MAIOR poderia ter o valor k sendo 2, para que busque o segundo valor mais alto.
Mas como fazer pra, automaticamente, o Item_D buscar o Status_3 ?

É aí que minha cabeça travou.

E os valores que aparecerem só uma vez? Não poderão ser calculados com o k sendo 2.

Ai ai ai... será que consegui explicar direito?

Se vocês baixarem o arquivo em anexo, poderão ver que tem as ocorrências em ordem de posição, da mais antiga.. e estou procurando agora, a fórmula pra trazer sempre a anterior de cada uma.

T__T

 
Postado : 24/05/2013 8:26 am
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

O que eu estava pensando em fazer é colocar uma nova coluna: "Nº de Ocorrência".
E, neste, conter valores de 1 à X para quantas vezes esse ITEM apareceu de acordo com a data.

Tendo isso feito, ao realizar o =MAIOR(matriz,k), adicionar esse valor da ocorrência no k.
Sendo assim, ele buscará o maior número, de acordo com o item da ocorrência.

Vou ver aqui se essa solução da certo e volto com a resposta.

Enquanto isso, aceito sugestões.

Obrigado, galera.

=)

 
Postado : 24/05/2013 10:22 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cara, tem como ir direto ao assunto?

Mostrar de forma prática diretamente na planilha.... Tal célula está retornando tal resultado por causa disso, porém quero que retorne esse outro resultado por causa daquilo. Juro que tentei, mas não entendi nada.

Qualquer coisa da o grito.
Abraço

 
Postado : 24/05/2013 10:35 am
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Sendo direto xD
-> A planilha em anexo, na primeira postagem, possui DATA, ITEM e STATUS.

Da seguinte forma:

  • Possuo registros desde 2009.
  • São registros que, ao longo dos anos, seguem registrando o status de cada item.
  • Cada item, pode ou não aparecer no mesmo ano, ou nos anos seguintes.
  • Ou seja, os mesmos itens que apareceram em 2009, com um status, pode aparecer em 2012, com outro status.
  • Assim como, um pode aparecer em 2009 com um status, 2010 com outro, 2011 com outro, 2012.. ......
  • Bem como, um item pode aparecer em 2012 e não aparecer em 2013. Assim como um de 2013 pode aparecer pela primeira vez.
  • Então, na planilha, existe uma coluna que apresenta o primeiro STATUS na ordem em que se encontra a sequencia.
    E uma outra coluna, com a fórmula que nosso colega Fernando Fernandes ofereceu, que apresenta o primeiro status do item, de acordo com a data, independente da ordem em que ela se encontra.

    Agora, eu preciso encontrar um jeito de, para cada item, apresentar o STATUS anterior dele em uma nova coluna.

    Por exemplo:
    Um item_X que apareceu em 2013 com Status_5
    tem seu status anterior no ano de 2012, que foi, por exemplo, Status_4.
    Bem como, para as outras ocorrências deste mesmo item_X.

    É esse o problema.

    Daí, acredito que se pudermos encontrar a ocorrência pela DATA, pegamos esse valor e jogamos no k da fórmula =MAIOR(matriz;k). Então, ele buscará o valor da maior data, a partir de qual ocorrência aconteceu. E sempre será a que procuramos.

    Ou a ideia está errada?

    Aqui, temos o anexo como você pediu.

    Desculpa a enrolada total na explicação do problema. É que tava tudo enrolado enquanto eu tentava entender aquela formula bacana que o Fernando passou pra mim. Heheheh

     
    Postado : 24/05/2013 11:09 am
    (@vic7or)
    Posts: 94
    Estimable Member
    Topic starter
     

    Caraca, to sem saída.
    =/

     
    Postado : 24/05/2013 12:19 pm
    (@fernandofernandes)
    Posts: 43750
    Illustrious Member
     

    Vamos por parte.

    Essa última planilha que você postou.

    Tem alguma coisa errada? Ou até o momento está tudo certo e você quer acrescentar alguma coisa?

    Na coluna "Ocorrência por Data". Não entendi o que precisa. Fazendo manualmente, a célula E2 tem que retornar o que? E porque desse retorno?

    Da mesma forma a coluna "STATUS DATA ANTERIOR", fazendo manualmente, a célula E2 tem que retornar o que? E porque desse retorno?

    Abraço

     
    Postado : 24/05/2013 12:37 pm
    (@vic7or)
    Posts: 94
    Estimable Member
    Topic starter
     

    Vamos la.
    Na planilha, há registro de itens.
    Cada item, possui data de inserção e um status atual.
    Porém, há itens que foram inseridos em 2009, e ao longo do tempo, foi reinserido com um novo status.

    Imagine da seguinte forma:
    Você vai ao médico fazer exames de gastro. Mas tem que ir de 2 em 2 meses.
    Na primeira vez que você vai, em janeiro, você teve como resultado do exame, que você está gastrite leve. O médico constatou que está é a sua primeira visita no consultório e você não tem um histórico. Então registrou nesse momento.
    Na segunda vez que você foi, em março, você teve diagnóstico de gastrite continua leve. O médico viu seu diagnóstico anterior e disse que você está bem.
    Na terceira vez que você foi, em maio, você teve sua gastrite em um nível mais crítico. O médico viu seu diagnóstico anterior e viu que você piorou.
    Na quarta vez, em julho, você teve uma melhorada. O médico viu seu diagnóstico anterior e viu que você melhorou.

    ..........

    Trazendo isso pro problema em questão,
    A vez que você foi, é a ocorrência do exame.
    O mês, a data.
    Você, o item.
    O diagnóstico, o status.

    ............
    Só que não é só você que vai ao médico. Então imagine a quantidade de entradas que terei por "item".
    ............

    Então, eu trouxe o problema em branco pra ver se tenho uma luz. Eu apaguei as fórmulas que fiz, pois estavam dando errado.
    Eu trouxe as duas colunas em branco para aprender como se faz. Do jeito certo.

    Eu fiz como você disse. Eu coloquei manualmente na planilha oq deve aparecer e o porque, eu explico aqui.

    Para a "Ocorrência por Data", é para saber que o "Z" item, naquela "Y" data, apareceu pela "X" vez. Esta formula eu não sei como fazer. =/
    Temos lá, a "Quantidade de ocorrencia" que já diz a quantidade de "X" vezes que esse "Z" item já apareceu. Somando com todas as "Y" datas desse item.

    Para a "status mais antiga do item", é a formula que trará SEMPRE o primeiro STATUS do ITEM. E, se ele for o primeiro item, ele será destacado como "NOVO ITEM".
    Para a "STATUS ITEM ANTERIOR", é pra trazer sempre o status anterior ao atual. Para saber como o item veio progredindo, desde o último.

    Hahahahahahaha ..... ........ X_X"

    Eu expliquei na pressa agora pq aconteceu um problema =/ Espero ter conseguido me expressar dessa vez. E apresentar o real fato do problema.

    Essa bomba eu não consigo resolver. Ela já estourou na minha cabeça =/
    To querendo aprender como faz.

     
    Postado : 24/05/2013 1:27 pm
    (@fernandofernandes)
    Posts: 43750
    Illustrious Member
     

    Novamente não entendi e fiz o que pouco entendi.

    Na célula E2 está aparecendo 1 porque o item A4-239-17 no dia 09/12/2012 apareceu somente uma vez na coluna A.
    (Coincidentemente todos os items aparecem somente uma vez por data)

    Na célula G2 está aparecendo STATUS 5 porque O item registrado com data imediatamente anterior a 09/12/2012 é de 05/07/2009 que se encontra na célula B3.

    Nas informações abaixo, caso não tenha o item registrado com uma data anterior a ela, vai retornar também como "ITEM NOVO".

    Caso não seja isso, me fale qual seria o valor de retorno correto e porque, indicando os mesmos, porque essa sua explicação está muito vaga.

     
    Postado : 24/05/2013 2:33 pm
    (@vic7or)
    Posts: 94
    Estimable Member
    Topic starter
     

    Desculpe se não consegui explicar, novamente.
    Vou me esforçar dessa vez.

    E vou alterar um pouco as nomenclaturas das tabelas. Para não nos prendermos ao que ela quer dizer.

    Bem, eu fiz as alterações, e destaquei agora a ideia da seguinte forma:

    Essa planilha, faz a gestão das OCORRÊNCIAS de um item.

    O que estou buscando na coluna "ORDEM DA OCORRENCIA" é a ordem de aparição do item, de acordo com as datas em que ele aparecer.

    Se um item apareceu 4 vezes,
    a ordem de ocorrencia "1", é aquela com data mais antiga.
    a ordem de ocorrencia "4", é aquela mais nova.

    É pra organizarmos a ordem de aparições do item ao olhar para ele, visto que as datas poderão estar totalmente embaralhadas.

    E, de quebra, a ideia inicial de conseguir a ordem de ocorrência foi para matar a questão de conseguir os valores da coluna de "STATUS ANTERIOR DESTE ITEM".
    Pensei que, se conseguir o número da ordem de ocorrência, poderíamos encaixar tal valor na formula "=MAIOR(matriz,K)".
    Inserindo o valor da ordem de ocorrência, no "k-ésimo" valor da fórmula, ele retornará o maior valor da matriz (que seria a data), e com isso, retornaríamos o valor que queremos: o STATUS.

    Esta coluna, apresentará o STATUS anterior à ocorrência deste item.

    Como dito na primeira postagem, há registros de itens desde 2009. Estes itens são verificados periodicamente. As vezes uma vez por ano, as vezes duas. Quem sabe três. Depende.
    Então, o item pode, ou não, ter mais de um STATUS por ano, e, juntando todas as ocorrências dele, ao longo dos anos, temos diversas ocorrências do mesmo item.

    Mas, na planilha, estarão totalmente embaralhadas.

    Sendo assim, essa coluna deve conter o valor do STATUS da ocorrência ANTERIOR da ocorrência ATUAL deste item.

    Ou seja, se o item que eu inserir agora, for o ITEM_X, e ele já tiver sido registrado alguma vez/vezes ao longo dos anos, esta coluna deverá registrar o STATUS anterior deste item.

    Os STATUS são o que definem a tragetória do ITEM ao longo dos anos.

    É como aquele exemplo da clínica, que apresentei acima.

    ...

    Será que consegui ser menos vago? =/
    É chato mesmo de explicar. Desculpe minha dificuldade.

     
    Postado : 27/05/2013 5:22 am
    (@vic7or)
    Posts: 94
    Estimable Member
    Topic starter
     

    Eu simplifiquei o exemplo.
    Utilizei uma simulação de um consultório médico.

    Em anexo, apresento o caso de uso do problema.
    Estou procurando a OCORRENCIA ANTERIOR ao registro atual do paciente.

    Se o paciente se consultou 10 vezes.
    Ele obteve 10 resultados de exames.

    Ao registrar o 10º exame, preciso saber qual foi o exame anterior. Ou seja, o 9º.
    Ao ver o 9º, saber qual o 8º.
    E assim por diante.
    Mas, o primeiro registro do paciente, não tem ocorrencias anteriores. Ou seja, é um novo paciente em sua primeira consulta.

    A ideia é ter a fórmula para buscar a informação de "exame" na ocorrência da data anterior ao registro atual.

    Ou seja,

    Se o primeiro registro do paciente foi dia 10/01/2013 e seu exame foi o "A", ao registrar o segundo exame, no dia 10/02/2013, deve buscar o registro do exame na data anterior.

    ...

    Em anexo, vocês terão a tabela na prática.

    ...

    Como eu poderia proceder?

    Eu tenho a ideia de usar a fórmula =MAIOR
    e buscar o valor do exame, de acordo com a data.

    A fórmula é =MAIOR(data, ordem_de_ocorrência)

    Se definirmos a ordem de ocorrência, ele sempre procurará a data de acordo com essa ocorrência.
    E a fórmula MAIOR pode se aplicar nisso.

    ...

    Ou estou enganado?
    Existe uma forma melhor?

     
    Postado : 05/06/2013 2:10 pm
    (@fernandofernandes)
    Posts: 43750
    Illustrious Member
     

    Victor,

    Em D2 faça:

    =CONT.SE($B$2:B2;B2)

    Arraste.

    Em F2 faça (matricial):

    {=SE(D2=1;"primeiro exame";INDIRETO("c"&MÁXIMO(SE($B$1:B1=B2;LIN($A$1:A1)))))}

    Arraste.

    Abs,

     
    Postado : 05/06/2013 2:40 pm
    (@fernandofernandes)
    Posts: 43750
    Illustrious Member
     

    Cara, sinceramente havia deixado para dar uma olhada em casa mas acabei me esquecendo desse tópico...

    Com um pouco de custo mas acho que consegui bater os resultados.

    Vê se é isso...

    Qualquer coisa da o grito.
    Abraço

     
    Postado : 05/06/2013 7:25 pm
    (@fernandofernandes)
    Posts: 43750
    Illustrious Member
     

    Eu acho que a solução é mandar seu chefe tomar no tóba.
    Na boa, ele sabe que não tem jeito (dentro do limite pífio dele), te pede algo que ele acha impossível, só pra ver você se foder, ele tá procurando motivo pra te mandar embora, certeza.
    Daí você vem aqui, nós ninjas operamos milagres, você apresenta o milagre e ele ainda quer mais?
    Caramba meu, sério mesmo! Manda ele embkra, demita seu chefe! rs

    desculpe a demora, vi este tópico agora, voi tentar ver o q consigo fazer.
    Mas minha sugestão é que você bote um freio nesse cara. Fala que não dá só pra ver se ele fala:
    " Ah não? Ta bom entao!"

    Falow!

     
    Postado : 07/06/2013 5:28 am
    (@fernandofernandes)
    Posts: 43750
    Illustrious Member
     

    Hahahahahhahahahha

    Acordou inspirado hoje Fernando?

    Mas infelizmente concordo com você...
    Fico indignado com isso... chegam pra gente e a gente tem a obrigação de fazer, se não fizer aí o bicho pega, aí tenta com outra pessoa, se qualquer outra pessoa falar que não dá, aí ele fala:
    " Ah não? Ta bom entao!"

    Isso mata qualquer um de ódio... já aconteceu muito comigo... hoje já coloco um pouco de freio...

    Fernando, acho que a última postagem que fiz bateram as informações.

    Qualquer coisa da o grito.
    Abraço

     
    Postado : 07/06/2013 5:40 am
    (@vic7or)
    Posts: 94
    Estimable Member
    Topic starter
     

    Mandrix e Bernardo.

    Vocês resolveram a questão.

    Agradeço a todos o empenho. Hahahah

    Agora vou atrás de fazer essa implementação no meu caso de uso original.

    E, é fodzzz, Fernando.
    Eu falei que ia TENTAR resolver tal caso. Que não era simples.
    A condição que me deram foi de tentar o máximo que eu pudesse e dar o retorno logo. hahahah

    Brevemente venho formalmente agradecer. Agora vou penar aqui com 180mil linhas de excel pra fazer isso. HAhahahah

     
    Postado : 08/06/2013 12:33 pm
    Página 1 / 2