Получите номер ячейки, дважды щелкнув по ней, и подставьте его в другую формулу.

Получите номер ячейки, дважды щелкнув по ней, и подставьте его в другую формулу.

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

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

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

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

Он выполнит поиск по всем этим ячейкам, и все они должны содержать символ x или нет, чтобы вернуть результат ПОПАДАНИЕ или ПРОМАХ.

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

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

Спасибо

решение1

"Динамическая формула", как вы описываете, потребует VBA. Я включил метод, чтобы вы начали - он позволяет пользователю вводить координаты и выяснять, есть ли у него ПОПАДАНИЕ или ПРОМАХ.

введите описание изображения здесь

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

=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"))    

Связанный контент