Equivalente ao Excel de String.contains (String otherString) de java

1

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) .

    
por corsiKa 21.09.2012 / 23:21

3 respostas

2

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 .

    
por 21.09.2012 / 23:41
1

Eu posso estar errado, mas acredito que você está procurando por find () .

FIND( substring, string, [start_position] )
    
por 21.09.2012 / 23:34
1

Isso fará:

=N(NOT(ISERR(SEARCH(C$1,$B2))))

    
por 22.09.2012 / 00:06