Eu tenho uma consulta que precisa ser executada para cada linha de uma lista. Funciona bem quando escrito para uma única linha:
QUERY(MaraRankData,
"select J,I,H,G,F,E where
A='"&E3&"' and
B='"&B3&"' and
C="&C3&" and
D="&D3&"",
0
)
Isso gera uma linha de dados, conforme desejado. Mas quando o envolvo em ARRAYFORMULA, ele ainda gera apenas uma linha em vez de muitas:
=ARRAYFORMULA(
QUERY(MaraRankData,
"select J,I,H,G,F,E where
A='"&E3:E&"' and
B='"&B3:B&"' and
C="&C3:C&" and
D="&D3:D&"",
0)
)
O Planilhas Google não está gerando erros, então não sei o que estou fazendo de errado. Como posso fazer com que o ARRAYFORMULA funcione com meu QUERY, para não precisar repetir a fórmula em todas as linhas?
google-sheets
formulas
Stobber
fonte
fonte
filter
, poste uma resposta: eu estaria interessado em uma solução desse tipo.=FILTER({E:E,F:F,G:G,H:H,I:I,J:J},A3:A=E3:E)
A primeira parte é apenas para reordenar as colunas entre colchetes. A segunda é porque A a E parece ser a única coluna que importava quando B olha para si mesma, C olha para si mesma, etc. Realmente, embora um conjunto de dados seja bom, e talvez mais explicações sobre o problema. Talvez eu simplesmente não entenda.Respostas:
A
arrayformula(query(...))
combinação não é suportada; não há conceito dequery
processar uma matriz de matrizes ou executar uma matriz de cadeias de consulta.Você tem duas opções: (a) repita
query
em cada linha; (b) usevlookup
para recuperar colunas de dados, conforme explicado abaixo. Por exemplo:pega um elemento de E3: E de cada vez, encontra esse elemento na coluna A e recupera o elemento correspondente da coluna J. Com essa abordagem, você precisaria de seis visualizações separadas para obter as colunas J, I, H, G, F, E, mas você não precisará de um comando separado para cada linha.
Uma complicação é que
vlookup
aceita apenas uma chave de pesquisa e você deseja pesquisar por 4 parâmetros,Isso pode ser contornado concatenando-os em uma chave de pesquisa: você pode ter uma coluna como Z,
que concatena quatro parâmetros de pesquisa em uma chave de pesquisa delimitada por canal. Faça o mesmo para a tabela a ser pesquisada e compare essas chaves usando
vlookup
.fonte