Eu tenho uma lista filtrada de valores. Digamos que eu tenha os números de 0
to 5
e 2
sejam filtrados:
A (with auto-filter against "2")
0
1
3
4
5
Agora quero descobrir se um dos valores de outra planilha faz parte dessa lista filtrada . No entanto, MATCH(2;A;0)
ainda obtenho a saída 3
, mesmo que esta linha 3
não esteja no intervalo filtrado.
A MATCH()
função não conhece o filtro, por isso obtenho resultados de correspondência que não estão no intervalo filtrado.
Como aplicar uma espécie de MATCH()
função apenas a um intervalo filtrado? Ou há mais alguma coisa que leve ao resultado necessário?
Como resulta da resposta, esta pergunta é quase a mesma para o Microsoft Excel (com a pequena mudança nas versões mais recentes do Excel de que você pode não precisar mais do gatilho de matriz Ctrl
+ Shift
+ Enter
, mas apenas Enter
). É por isso que também recebe uma tag do Excel.
Se você estiver usando
MS365
, poderá tornar a fórmula acima mais curta usando LET()eSEQUENCE()Para versões mais antigas do Excel ->
• Fórmula usada na célulaG5
Ou, em
MS365
• Fórmula usada na célulaG6
3
denota o COUNTA()while OFFSET()ajuda na criação de uma faixa dinâmica. A captura de tela a seguir e a fórmula lhe darão uma ideia clara. Além disso, desde que estou,MS365
não preciso acertar CTRL+ SHIFT+ ENTER, mas versões mais antigas precisam acertar.O acima é o mesmo que
Onde
α
está o alcanceSheet1!A2:A7
2
mostra como0
, porque os que são encontrados são os1
s, quando esta parte da fórmula é avaliada mostra como todos,FALSE
pois não consegue encontrar o valor correspondente aqui2
TRUE
ie1
s que estamos obtendo, #N/Auma vez que não conseguimos encontrá-los.Mas se tentarmos encontrar alguns outros valores, isso nos dará a saída necessária, mostrando a posição da linha. A lógica aplicada é a mesma para outras versões e também para
LibreOffice
outras versões.Agora a verificação do questionador do German Libre Office (funciona):
G5
.VERGLEICH(1;WENN(TEILERGEBNIS(3;VERSCHIEBUNG($A$2:$A$7;ZEILE($A$2:$A$7)-ZEILE($A$2);0;1))>0;WENN($A$2:$A$7=F5;1));0)
.Ctrl
+Shift
+Enter
.{}
){=VERGLEICH(1;WENN(TEILERGEBNIS(3;VERSCHIEBUNG($A$2:$A$7;ZEILE($A$2:$A$7)-ZEILE($A$2);0;1))>0;WENN($A$2:$A$7=F5;1));0)}
:E para entender o truque principal, veja como funcionam os subtotais na matriz:
G7
atéG12
(ou quaisquer outras 5 células vazias abaixo uma da outra).F2
enquanto as 5 células estão marcadas.TEILERGEBNIS(3;VERSCHIEBUNG($A$2:$A$7;ZEILE($A$2:$A$7)-ZEILE($A$2);0;1))
.Ctrl
+Shift
+Enter
.0
preenchidasG9
para2
: