Estou tentando descobrir exatamente o que o Excel está fazendo com essas duas funções.
Eu tenho muitas linhas de strings em uma única coluna. Eu quero puxar o primeiro numérico nessas strings. O primeiro número pode ser 0,1,2,3 ... 9 e o comprimento total da string varia. Eu quero encontrar o primeiro número e devolvê-lo e tudo depois dele. Eu encontrei o seguinte código no google enquanto pesquisava como encontrar o primeiro numérico em uma string, mas eu não entendo como ele funciona. As únicas alterações que fiz foram adicionadas uma ação de falha à instrução IF.
=MIN(IF(ISNUMBER(FIND({1,2,3,4,5,6,7,8,9,0},A1))=TRUE,FIND({1,2,3,4,5,6,7,8,9,0},A1),"N/A"))
Ao ler isso, ele diz o seguinte: Há algum número na matriz {1,2,3,4,5,6,7,8,9,0}
encontrado na minha string? Se houver, então ISNUMBER() = TRUE
passará e o código executará a segunda função FIND()
. Em seguida, ele passa os resultados da segunda função FIND()
(ou seja, as posições de todos os números na sequência) para a função MIN()
que leva o mínimo (ou seja, a primeira posição).
Isso funciona corretamente, mas o que eu não entendo é que, se eu fizer isso sem a instrução IF, isso me dará um erro #VALUE
. Em outras palavras, se eu fizer isso
=MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1))
Eu recebo #VALUE
na célula de saída. Por quê? Acabei de tirar a declaração IF até onde eu posso ver.
Alguém pode explicar o que estou perdendo aqui. É a maneira pela qual o Excel passa informações da função IF()
?