Algo ao longo das linhas de =IF(ISERROR(FIND("text", A1)), "false", "true")
deve funcionar.
Se você precisar usar curingas, poderá tentar search
em vez de find
.
Eu tenho uma célula que tem uma String bastante arcaica. (É o custo de mana de um feitiço Magic: the Gathering.) Exemplos são 3g
, 2gg
, 3ur
e bg
. Existem 5 letras possíveis ( g w u b r
). Eu tenho 5 colunas e gostaria de contar na parte inferior quantas de cada uma delas contém. Então, minha planilha pode se parecer com isso
A B C D E F G
+--------------------------------------------
1|Name Cost G W U B R
2|Centaur Healer 1gw 1 1 0 0 0
3|Sunspire Griffin 1ww 0 1 0 0 0 // just 1, even though 1ww
4|Rakdos Shred-Freak {br}{br} 0 0 0 1 1
Basicamente, quero algo parecido com =if(contains($A2,C$1),1,0)
e posso arrastá-lo pelas 5 colunas e por todas as 270 cartas. (Esses são dados reais, a propósito. Não é ridicularizado :-).)
Em Java, eu faria isso:
String[] colors = { "B", "G", "R", "W", "U" };
for(String color : colors) {
System.out.print(cost.toUpperCase().contains(color) ? 1 : 0);
System.out.print("\t");
}
Existe algo assim ao usar o Excel 2010?
Eu tentei usar find()
e search()
e eles funcionam muito bem se a cor existir. Mas se a cor não existir, ela retorna #value
- então eu recebo 1 1 #value #value #value
ao invés de 1 1 0 0 0
, por exemplo, Centaur Healer (linha 2). A fórmula usada foi if(find($A2,C$1) > 0, 1, 0)
.
Eu posso estar errado, mas acredito que você está procurando por find () .
FIND( substring, string, [start_position] )
Isso fará:
=N(NOT(ISERR(SEARCH(C$1,$B2))))
Tags microsoft-excel