Atualize uma lista do Excel dinamicamente sem usar scripts

Aug 15 2020

Estou um pouco preso e poderia usar alguma ajuda.

Estou tentando manter uma lista no excel atualizada dinamicamente, com base nas condições de outras células. Algo parecido com (SE ambos os valores de célula em A1 e A2 CORRESPONDEM aos valores de célula em A3 e A4, retorne A5). Eu gostaria de usar apenas fórmulas e nenhum script, mas não tenho certeza se é possível.

Aqui está um cenário. Gina (A3) tem uma cesta de compras com 6 itens (B3:B8): Limão, Pasta de Dente, Brownie, Escova de Cabelo, Uvas, Sanduíche –

cesta da Gina

Gina e suas amigas gostam de trocar coisas umas com as outras e, quando o fazem, registram cada troca (D3:F5) –

registro de negociações

O que estou tentando fazer é descobrir como atualizar a cesta de compras de Gina toda vez que ela registra uma nova transação.

E, além disso, precisa permitir a troca do mesmo item duas vezes (para itens diferentes em cada ocasião), contabilizando apenas a entrada mais recente negociada para aquele item – neste caso ela está recebendo uma laranja em sua cesta –

neste caso ela está recebendo uma laranja em sua cesta não, não um cupcake

Eu tentei várias combinações de IF, AND, MATCH e INDEX com segunda coluna duplicada, ou ficando preso em dependências circulares, e não consigo chegar ao fundo disso.

Segue link da planilha:https://docs.google.com/spreadsheets/d/17J-lX2V1Zs-K7WmsfruqcEJtmElM5rCQTeCLFh8FX1U/edit?usp=sharing

Se alguém tiver alguma ideia de como resolver isso, ficarei imensamente grato!

Obrigado Jimmy

Respostas

1 RajeshS Aug 16 2020 at 15:12

:: Embargo ::

Como o OP não precisa de uma solução baseada em VBA MACRO, portanto, nessas circunstâncias, a possibilidade que encontrei é usar poucas fórmulas ARRAY (CSE) e formatação condicional. Possivelmente, esse outro pode sugerir um melhor.


Como funciona:

  • Itens Comercializados e Lista de Mercearia são TABELA.

Assim que você adicionar ou remover Nome ou Item da TABELA, o Excel atualizará automaticamente os dados relacionados.

  • Além da Cesta de Compras e Itens Comercializados , você também precisa criar a Lista de Mercearia .

  • Assim que alguém comprar qualquer Item, você precisa ATUALIZAR a Mesa da Mercearia .

Confira a lista de Itens Antigos, são comprados pela GINA e outros.

  • Crie uma lista suspensa na célula P17, atualmente tem apenas 3 nomes, você pode adicionar mais.

Se você tiver uma lista enorme de compradores, para obter uma lista exclusiva, poderá usar qualquer uma das fórmulas.

  • Uma fórmula de matriz (CSE) na célula P28:

     {=IFERROR(INDEX($U$17:$U$30, MATCH(0, INDEX(COUNTIF($P$27:P27, $U$17:$U$30)+($U$17:$U$30=""), ), 0)), "")}
    
  • Para versões superiores, você pode usar este em P28:

    =UNIQUE(FILTER(U17:U30,U175:U30<>""))

Em seguida, use a lista de compradores de uso exclusivo para o menu suspenso na célula P17.

  • Agora use esta fórmula de matriz (CSE) na célula Q17:

    {=IFERROR(INDEX($T$17:$T$30, SMALL(IF(COUNTIF($P$17, $U$17:$U$30)*COUNTIF($U$17:$U$30,"<>"), ROW($T$17:$U$30)-MIN(ROW($T$17:$U$30))+1), ROW(A1)), COLUMN(A1)),"")}
    
  • Uma fórmula de matriz (CSE) na célula R17:

    {=IFERROR(INDEX($N$17:$N$22, SMALL(IF(COUNTIF($P$17, $L$17:$L$22)*COUNTIF($N$17:$N$22,"<>"), ROW($L$17:$N$22)-MIN(ROW($L$17:$N$22))+1), ROW(A1)), COLUMN(A1)),"")}
    
  • Aplique a formatação condicional, usando a fórmula mostrada abaixo como Nova Regra, em Q17:Q25:

    =COUNTIF($N$17:$N$22,Q17)=0


NB

  • Termine a fórmula da matriz (CSE) com Ctrl+Shift+Enter e preencha na direção necessária.

  • A lista de novos itens mostra os itens trocados (negociados).

  • A lista antiga tem itens em VERMELHO, são itens não trocados, pois você pode encontrar GINA comprou CINCO itens (consulte a lista de clientes na coluna U) e trocou apenas DOIS, são Abacate e Charutos.

  • Continue alterando os nomes na célula P17, você obterá resultados.

  • Ajuste as referências de célula na fórmula conforme necessário.