Usando Excel 365.
Eu tenho alguns dados de texto nas colunas A e B como:
101r MC
101r TU
101r VV
101r VL
w257 HU
w257 QI
w257 JJ
w257 YW
315L GD
315L OO
315L NL
w257 BHU
que eu quero resumir em formato 2-D
em D1 eu entro na fórmula:
=UNIQUE(FILTER(A:A,LEN(A:A)))
que funciona e cai bem. Em E1 eu coloco:
=TRANSPOSE(FILTER(B:B,A:A=D1))
que também funciona e se espalha bem. Em seguida, copio manualmente E1 para baixo para obter:
Gostaria que a propagação da fórmula E1 fosse dinâmica.
O que eu tentei:
=TRANSPOSE(FILTER(B:B,A:A=INDEX(D:D,SEQUENCE(COUNTA(D:D)))))
=TRANSPOSE(FILTER(B:B,A:A=INDIRECT("D" & SEQUENCE(COUNTA(D:D)))))
Nenhuma dessas fórmulas se espalha (ou sequer funciona) . No entanto, por si só, a seguinte parte funciona:
=INDEX(D:D,SEQUENCE(COUNTA(D:D)))
É possível arrastar E1 para baixo dinamicamente ??
=INDEX(D:D,SEQUENCE(COUNTA(D:D)))
apenas duplica os resultados emD1:D3
, o que não leva a nenhum lugar diferente do que referenciarD1#
diretamente.Eu não acho que seja possível. Mas talvez essas tentativas aproximem você ou outra pessoa?
Tentei uma fórmula mista (depende do cálculo da matriz e da interseção implícita) utilizando o operador de interseção implícita (@) . Também substituí
D:D
porD1#
para referenciar dinamicamente apenas o intervalo derramado, usando o operador de intervalo derramado (#) .Isso fornece a fórmula
=TRANSPOSE(FILTER(B:B,A:A=@$D$1#))
que pode ser copiada e colada manualmente em todas as células de E1 a E3 sem a referência relativa D1 necessária para sua fórmula.Alguém poderia pensar que, em vez de copiar e colar esta fórmula, ela poderia ser inserida em todas as células como CSE array formula , selecionando E1 a E3 , inserindo a fórmula e pressionando Ctrl+ Shift+ Enter. No entanto, parece que o Excel não oferece suporte a derramamento de uma fórmula de matriz CSE. Seguindo as etapas de cálculo no E3 através da caixa de diálogo Avaliar Fórmula , chega a
TRANSPOSE({"GD";"OO";"NL"})
, mas de alguma forma a etapa final transforma isso emMC
. Talvez seja um bug do Excel? De qualquer forma, ajuda a ilustrar a dificuldade que um programa de planilha pode ter em interpretar entradas em diferentes dimensões.Eu também tentei a coisa mais óbvia,
=TRANSPOSE(FILTER(B:B,A:A=D1#))
. Isso apenas retorna um#N/A
erro porque não está definido para aceitar argumentosFILTER(array, include, [if_empty])
bidimensionais .include
O que significa filtrar um array [Nx30] com uminclude
argumento de dimensão [Nx2]? Derramar para atender à sua pergunta parece razoável, mas a Microsoft não deve ter pensado nisso ou pensado que era geralmente útil e inequívoco o suficiente para implementar.