
Como parte do meu trabalho com TIC, precisamos criar um jogo de batalha e uma forma que eu estava pensando em fazer era usar
=IF(ISNUMBER(SEARCH("*x*",C3)),"HIT","MISS")
para verificar se aquela célula contém x mas obviamente seria estática e sempre verifica C3. Preciso pesquisar C3:G8 mas se o fizer
=IF(ISNUMBER(SEARCH("*x*",C3:G8)),"HIT","MISS")
Ele irá pesquisar todas essas células e todas elas devem conter um x, ou não, para retornar HIT ou MISS.
Eu estava pensando que se você clicar duas vezes em uma célula, por exemplo, D4, ela pegará D4 e a colocará na fórmula quase como uma fórmula dinâmica. É mesmo possível?
Estou abordando isso da maneira errada e, em caso afirmativo, qual seria a melhor maneira de abordar isso?
Obrigado
Responder1
A "fórmula dinâmica", como você descreve, exigiria VBA. Incluí um método para você começar - ele permite ao usuário inserir coordenadas e descobrir se ele tem um HIT ou MISS.
A fórmula usada na célula de resultado é:
=IF(INDEX(C3:D5,MATCH(H3,B3:B5,0),MATCH(I3,C2:D2,0))="x","HIT","MISS")
Para torná-lo mais legível (como é lição de casa...), ficaria tentado a usar intervalos nomeados e assim:
=IF(INDEX(grid,MATCH(H3,y_axis,0),MATCH(I3,x_axis,0))="x","HIT","MISS")
.
ATUALIZAR
Aqui está outro método semelhante e simples, que usa formatação condicional para mostrar acertos e erros:
A formatação condicional usa fórmulas simples como a seguir:
=AND(B3="x",H3="x") //for a hit
=AND(B3="x",H3="") //for a miss
A fórmula para os acertos restantes é a seguinte:
=COUNTIF(H3:L16,"x")-SUMPRODUCT((H3:L16="x")*(B3:F16="x"))