Eu não sei exatamente se é a maneira mais simples, mas se é certo, os pais estão agrupados na Planilha A (então é como se você tivesse escrito, e não como, por exemplo.
John Scott
Victoria Jason
John Lucas
), você pode considerar o uso dessa solução (suponho que os dados da sua planilha começam com "John" na célula A2, WA
corresponde à planilha A e WB
corresponde à planilha B):
Primeiro, adicione outra coluna, chamada offset em WA. Como "Age" é C
column, eu coloco na coluna D
. A fórmula é =Row(A2)-Row($A$2)
e é propagada para baixo. Você deve obter 0
, 1
, 2
... Estes são deslocamentos de cada linha em relação ao primeiro.
Usaremos esse valor para nosso deslocamento usando a função VLOOKUP
. No WB, digamos que você insira o nome do seu pai na célula A1
, em B1
nós iremos obter o (s) nome (s) da criança. Então, na coluna auxiliar, digamos C
, colocamos a fórmula
=VLOOKUP(A1; WA!$A$2:$D$xxx; 4; FALSE)
os parâmetros significam:
-
A1
é o valor da célula que você está pesquisando - o nome do pai
-
WA!$A$2:$D$xxx
denota o intervalo em que você pesquisa (substitua xxx
pelo número de linhas obtidas)
-
4
significa que queremos recuperar o valor da quarta coluna, que é WA!D
neste caso, e esse é nosso deslocamento
-
FALSE
significa que queremos realizar a pesquisa exata, pois a coluna WA!A
é (ou pode ser) não classificada.
O valor que você obtém é o valor em que seu intervalo deve começar. Agora precisamos encontrar seu final, isso significa quantas linhas existem. A maneira mais simples pode ser adicionar outra coluna no WA, digamos E
, onde colocamos uma fórmula simples contando quantos filhos um pai tem:
=COUNTIF($A$2:$A$xxx; A2)
Em seu exemplo, você receberá 3
, 3
, 3
, 2
, 2
, 2
, 2
.
Você deve copiar este valor para WB, coluna D
, usando novamente:
=VLOOKUP(A1; WA!$A$2:$E$xxx; 5; FALSE)
Agora, no WB, temos na coluna A
nome do pai, na coluna B
inserimos um filho, na coluna C
existe deslocamento do primeiro filho do pai, e na coluna D
número de filhos que o pai tem.
Agora vá até o gerenciador de nomes e adicione o novo nome Kids
cobrindo o intervalo:
=OFFSET(WA!$B$2:$B$xxx; WB!D1; 0; WB!E1)
onde os parâmetros significam:
-
WA$B$2:$B$xxx
- é o intervalo que contém nomes filhos,
-
WB!D1
(nota: é relativo!) é o deslocamento, então onde a lista filho inicia no intervalo anterior em WA,
-
0
significa que não queremos fazer nenhum deslocamento nas colunas,
-
WB!E1
diz quantas linhas queremos obter (ou seja, quantos filhos).
Tendo esse nome Kids
, adicione agora em WB!B1
a validação de dados, defina para lista e a origem é =Kids
. Agora, propague-o para baixo.
Isso é tudo.
Se os seus dados no WA não contiverem pais agrupados, você poderá obter isso classificando-os.