Tengo una celda que tiene una cadena bastante arcaica. (Es el coste de maná de un hechizo Magia: la Reunión.) Los ejemplos son 3g
, 2gg
, 3ur
y bg
. Hay 5 letras posibles ( g w u b r
). Tengo 5 columnas y me gustaría contar en la parte inferior cuántas contiene de cada una. Así que mi hoja de cálculo podría tener este aspecto
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 parezca =if(contains($A2,C$1),1,0)
y puedo arrastrarlo a través de las 5 columnas y hacia abajo de las 270 algunas cartas. (Esos son datos reales, por cierto. No está burlado :-).)
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");
}
¿Hay algo como esto en el uso de Excel 2010?
Traté de usar find()
y search()
y funcionan muy bien si el color existe. Pero si el color no existe, vuelve. #value
- así me sale 1 1 #value #value #value
en lugar de 1 1 0 0 0
para, por ejemplo, Centaur Healer (fila 2). La fórmula utilizada fue if(find($A2,C$1) > 0, 1, 0)
.
search
en lugar defind
. Todavía no estoy seguro de cuál es la diferencia, pero funciona para mis propósitos.