Concatenando valores de várias correspondências em uma única célula

3

Eu tenho uma planilha que estou tentando configurar da seguinte forma:

A    | B       | C       | D         | ... | G        | H
Date   Trainer   Trainee   Procedure         Employee   Credentials
...    Aster     Lisa      A                 Aster      A
...    Frank     Lisa      B                 Frank      C, A
...    Frank     Aster     A                 Lisa       A, B, C
...    Lark      Frank     C                 Lark       
...    Lark      Frank     A
...    Frank     Lisa      C

Minha pergunta é qual tipo de fórmula eu poderia usar para que a coluna de credenciais contivesse uma lista concatenada de cada procedimento cuja entrada de estagiário corresponde à entrada do funcionário? Idealmente, não deveria ser necessário ordenar os dados, como já está ordenado por data.

    
por Ross Swartz 15.12.2017 / 15:25

2 respostas

2

Sugiro uma solução que funcione no LibreOffice Calc 5.4. Ele usa uma função TEXTJOIN incorporada que está disponível apenas nas versões recentes do LibreOffice Calc. Então, caso você esteja usando uma versão mais antiga, tente atualizar para a v5.4.

Neste exemplo, os dados de amostra estão nas Células C2: D8. Além disso, deixe a primeira linha como linha de cabeçalho para a fórmula funcionar corretamente, pois a primeira linha é arbitrária na solução para funcionar corretamente.

Os nomes dos trainees são colocados nas células E2: E6.

Agora, em F2, coloque a seguinte fórmula.

=IFERROR(TEXTJOIN(",",1,IFERROR(INDEX($D$2:$D$8,N(IF(1,IF($C$2:$C$8=E2,ROW($D$2:$D$8)-ROW($D$1),9^99)))),"")),"")

Pressione CTRL + SHIFT + ENTER (CSE) de dentro da barra de fórmulas para criar uma fórmula de matriz. Sem o CSE, a fórmula não funcionará corretamente.

Agora copie e cole esta fórmula em todas as células aplicáveis de F3 a F6. Isso é testado no sistema operacional Windows, mas deve funcionar bem mesmo se você estiver no Linux.

Como sua tag menciona o LibreOffic Calc, essa solução é pouco específica para o LibreOffice Calc. Se você estiver no MS Excel, o TEXTJOIN só estará disponível no Office 2016 e acho que a versão do Office 365. Nesse caso, se o TEXTJOIN não estiver nativamente disponível, você precisará codificar um no VBA.

    
por 16.12.2017 / 12:46
0

As várias maneiras de fazer isso em uma planilha são descritas em Excel Como vlookup para retornar vários valores? Principalmente, isso é feito com fórmulas de matriz que iria encontrar um "procedimento" em cada célula. Então, essas células podem ser unidas para mostrar "Credenciais".

No entanto, minha escolha seria usar o Base com um mecanismo como o MySQL. A consulta usaria GROUP_CONCAT() conforme descrito no link . Os dados podem ser movidos para o Base arrastando e soltando uma seleção do Calc para o ícone Tabelas.

As versões mais recentes do HSQL também suportam GROUP_CONCAT . No entanto, o antigo HSQL 1.8 que vem embutido com o LibreOffice não.

    
por 16.12.2017 / 00:09