
Como parte de mi trabajo en TIC, necesitamos crear un juego de acorazados y una forma en la que estaba pensando en hacerlo era usando
=IF(ISNUMBER(SEARCH("*x*",C3)),"HIT","MISS")
para verificar si esa celda contiene x pero obviamente sería estática y siempre verifica C3. Necesito buscar C3:G8 pero si lo hago
=IF(ISNUMBER(SEARCH("*x*",C3:G8)),"HIT","MISS")
Buscará en todas esas celdas y todas deben contener una x, o no, para devolver HIT o MISS.
Estaba pensando que si haces doble clic en una celda, por ejemplo D4, tomará D4 y lo colocará en la fórmula casi como una fórmula dinámica. ¿Es eso siquiera posible?
¿Estoy abordando esto de manera incorrecta y, de ser así, cuál sería una mejor manera de abordarlo?
Gracias
Respuesta1
La "fórmula dinámica", como la describe, requeriría VBA. He incluido un método para comenzar: permite al usuario ingresar coordenadas y averiguar si tiene un Acierto o un Fallo.
La fórmula que se utiliza en la celda de resultados es:
=IF(INDEX(C3:D5,MATCH(H3,B3:B5,0),MATCH(I3,C2:D2,0))="x","HIT","MISS")
Para hacerlo más legible (ya que es tarea...), estaría tentado a usar rangos con nombre y así:
=IF(INDEX(grid,MATCH(H3,y_axis,0),MATCH(I3,x_axis,0))="x","HIT","MISS")
.
ACTUALIZAR
Aquí hay otro método simple similar, que utiliza formato condicional para mostrar aciertos y errores:
El formato condicional utiliza fórmulas simples como las siguientes:
=AND(B3="x",H3="x") //for a hit
=AND(B3="x",H3="") //for a miss
La fórmula para los aciertos restantes es la siguiente:
=COUNTIF(H3:L16,"x")-SUMPRODUCT((H3:L16="x")*(B3:F16="x"))