Equivalente en Excel de String.contains de Java (String otherString)

Equivalente en Excel de String.contains de Java (String otherString)

Tengo un celular que tiene un String bastante arcaico. (Es el coste de maná de un hechizo de Magic: the Gathering). Algunos ejemplos son 3g, 2gg, 3ury bg. Hay 5 letras posibles ( g w u b r). Tengo 5 columnas y me gustaría contar en la parte inferior cuántas de cada una contiene. Entonces mi hoja de cálculo podría verse así

  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

Básicamente, quiero algo que se vea así =if(contains($A2,C$1),1,0)y pueda arrastrarlo por las 5 columnas y por las 270 tarjetas. (Por cierto, esos son datos reales. No se burlan de ellos :-) .)

En Java haría esto:

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 como esto al usar Excel 2010?

Intenté usar find()y search()funcionan muy bien si el color existe. Pero si el color no existe, regresa #value, por lo que obtengo 1 1 #value #value #valueen lugar de 1 1 0 0 0, por ejemplo, Centaur Healer (fila 2). La fórmula utilizada fue if(find($A2,C$1) > 0, 1, 0).

Respuesta1

Algo parecido a =IF(ISERROR(FIND("text", A1)), "false", "true")debería funcionar.

Si necesita utilizar comodines, puede intentarlo searchen lugar de find.

Respuesta2

Podría estar equivocado, pero creo que estás buscandoencontrar().

FIND( substring, string, [start_position] )

Respuesta3

Esto lo hara:

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

información relacionada