
Eu tenho as duas matrizes a seguir:
{a,b,c}
{d,e,f}
Como faço para obter essa matriz?
{a*d,b*e,c*f}
Por exemplo, uma matriz é {0,1,1}, outra é {255.122,0}. Eu preciso desta matriz:
{0,122,0}
É realmente simples assim.
Isso está relacionado a este tópico:Excel: procure a última célula diferente de zero e não vazia no intervalo filtrado
Descobri que esta fórmula SUBTOTAL(2,OFFSET(R5,ROW(R5:R200)-ROW(R5),0)) fornece 1 para os dados filtrados (visíveis) e 0 para aqueles filtrados (invisíveis). Então, este é um array com 196 elementos de 0 ou 1.
Outra matriz, OFFSET(R5,ROW(R5:R200)-ROW(R5),0), basicamente, é apenas R5:R200.
Se eu puder multiplicar cada elemento de um array por sua contraparte correspondente em outro array e obter um novo array, então, a LOOKUP a seguir fornecerá o último número diferente de zero nos dados filtrados.
=PESQUISA(2,1/NOVA MATRIZ,R5:R200)
Isso ocorre porque a matriz SUBTOTAL fornece 1 para cada célula filtrada (visível) e quando é multiplicada pelo conteúdo da célula, as células visíveis com conteúdo 0 se tornarão 0 na nova matriz (o segundo 1 em {0,1,1 } vezes 0 em {255.122,0}). Portanto, a última célula diferente de zero será captada pelo LOOKUP.
Responder1
Como @Jeeped afirmou, use INDEX:
INDEX({0,1,1}*{255,122,0},0)
Isso retornará a matriz {0,122,0} para outra fórmula
Como você pode ver se somarmos os números:
=SUM(INDEX({0,1,1}*{255,122,0},0))
Que retorna 122
Responder2
Responder3
Digamos que você tenha nas células A1, B1 e C1 1, 2 e 3 respectivamente. E nas células A2, B3 e C2 você tem 4, 5 e 6 respectivamente.
Na célula A3, você pode inserir a fórmula:
= A1:C1 * A2:C2
e irá gerar um array de {4,10,18} que irá se espalhar em A3, B3 e C3 respectivamente.