1

В рамках моей работы в области ИКТ нам нужно создать игру на линкоре, и одним из способов, которым я думал об этом, было использование

=IF(ISNUMBER(SEARCH("*x*",C3)),"HIT","MISS")

проверить, содержит ли эта ячейка x, но, очевидно, она будет статической и всегда проверяет C3. Мне нужно искать C3:G8, но если я делаю

=IF(ISNUMBER(SEARCH("*x*",C3:G8)),"HIT","MISS")

Он будет искать все эти ячейки, и все они должны содержать х или нет, чтобы вернуть HIT или MISS.

Я думал, что если дважды щелкнуть ячейку, например D4, она возьмет D4 и поместит ее в формулу почти как динамическая формула. Это вообще возможно?

Неправильно ли я подхожу к этому, и если да, то как лучше подходить к этому?

Спасибо

1 ответ1

0

"Динамическая формула", как вы описываете, потребует VBA. Я включил метод, чтобы вы начали - он позволяет пользователю вводить координаты и выяснять, есть ли у них HIT или MISS.

Формула, используемая в ячейке результата:

=IF(INDEX(C3:D5,MATCH(H3,B3:B5,0),MATCH(I3,C2:D2,0))="x","HIT","MISS")

Чтобы сделать его более читабельным (так как это домашняя работа ...), я бы соблазнился использовать именованные диапазоны и, таким образом:

=IF(INDEX(grid,MATCH(H3,y_axis,0),MATCH(I3,x_axis,0))="x","HIT","MISS")

,

ОБНОВИТЬ

Вот еще один похожий - простой метод, который использует условное форматирование для отображения попаданий и промахов:

Условное форматирование использует следующие простые формулы:

=AND(B3="x",H3="x")  //for a hit

=AND(B3="x",H3="")   //for a miss

Формула для оставшихся хитов выглядит следующим образом:

=COUNTIF(H3:L16,"x")-SUMPRODUCT((H3:L16="x")*(B3:F16="x"))    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .