Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как сравнить ячейки - по углу, на который они отклоняются от общей ячейки
 
Доброго времени.
Здравствуйте форумчане.
Помогите решить задачу.

На листе есть две ячейки AI12 и S18, которые для наглядности соединены линией (только для наглядности)
Ячейка AI12 - является основной, вокруг нее находятся 8 ячеек, которые выделил цветом.

Как вывести в AQ6 - результат - адрес ячейки, находящейся рядом с AI12 и более проходящее под тем же углом, что и удаленная ячейка S18 ?

То есть нужно сравнить ячейки - по углу, на который они отклоняются от общей ячейки и выбрать ту,  угол отклонения которой - более похож на угол к ячейке S18.
(В данном случае под угол удаленности ячейки S18 - наиболее подходит ячейка AH12.)
 
Добрый день! Можете более конкретно уточнить условия. Почему вы считаете что наиболее подходит ячейка  AH12, а ни AH13 ?
Цитата
Просто Вова написал:
более проходящее под тем же углом, что и удаленная ячейка S18 ?
Угол относительно чего ? Как вы его вычисляете ?
Изменено: Андрей_26 - 16 Май 2019 08:56:35
 
=ADDRESS(ROW(INDIRECT(AQ3))+INDEX({0;1;1;1;0;-1;-1;-1;0};ROUND(ATAN2(COLUMN(INDIRECT(AQ4))-COLUMN(INDIRECT(AQ3));ROW(INDIRECT(AQ3))-ROW(INDIRECT(AQ4)))/PI()*4;0)+5);COLUMN(INDIRECT(AQ3))+INDEX({-1;0;1;1;1;0;-1;-1};ROUND(ATAN2(COLUMN(INDIRECT(AQ4))-COLUMN(INDIRECT(AQ3));ROW(INDIRECT(AQ3))-ROW(INDIRECT(AQ4)))/PI()*4;0)+4);4)

Для наглядности выделить ячейку нажать F9
Изменено: БМВ - 16 Май 2019 21:49:51
 
БМВ, это что-то не то.
Куда-то исчезает выделенная зеленым ячейка.

Ничего дополнительно выделять не нужно.
Тут наверное решение формулой - не подойдет..
Изменено: Просто Вова - 16 Май 2019 21:12:30
 
Цитата
Андрей_26 написал:
Почему вы считаете что наиболее подходит ячейка  AH12, а ни AH13 ?
А посмотрите по тому, что изображено на листе.
Там же видно, что большая часть линии - проходит по ячейке AH12 и совсем немного задевает ячейку AH13.
Поэтому чисто интуитивно можно сказать, что AH12 - более подходит.
Цитата
Андрей_26 написал:
Угол относительно чего ? Как вы его вычисляете ?
А я не знаю - как еще это можно сформулировать.
Для наглядности нарисовал фигуру-линию.
Эта линия - исходит из центра синей ячейки и нацелена на центр зеленой ячейки.

И нужно макросом как-то определить:   какая из желтых ячеек - лежит на этом пути, или расположена в том же направлении, или находится под тем же углом ?
Я просто не математик, поэтому формулирую задачу простым слогом.
 
да все подойдет, вот в Вашем файле
Изменено: БМВ - 16 Май 2019 21:48:44
 
БМВ, я написал в AQ4 - адрес "U10"
А в  AQ3 - написал адрес "AM14"

Формула выдает ошибку "ССЫЛКА!"
Я думаю здесь не подойдет решение формулой.
 
Цитата
Просто Вова написал:
Я думаю здесь не подойдет решение формулой.
а зря
 
Честно говоря ни пойму, чем Вас не устроил первый ответ БМВ? По-моему то что вы хотели. Ставите мышку на S18 жмете F9. S18 - становится зеленая, в ячейке AQ6 - результат, как необходимо AH12. Вы же не указывали, что в ячейках AQ3  AQ4  будут данные меняться ))
Изменено: Андрей_26 - 16 Май 2019 23:18:55
 
БМВ, спасибо. Все работает.

=АДРЕС(СТРОКА(ДВССЫЛ(AQ3))+ИНДЕКС({0:1:1:1:0:-1:-1:-1:0};ОКРУГЛ(ATAN2(СТОЛБЕЦ(ДВССЫЛ(AQ4))-СТОЛБЕЦ(ДВССЫЛ(AQ3));СТРОКА(ДВССЫЛ(AQ3))-СТРОКА(ДВССЫЛ(AQ4)))/ПИ()*4;0)+5);СТОЛБЕЦ(ДВССЫЛ(AQ3))+ИНДЕКС({-1:0:1:1:1:0:-1:-1};ОКРУГЛ(ATAN2(СТОЛБЕЦ(ДВССЫЛ(AQ4))-СТОЛБЕЦ(ДВССЫЛ(AQ3));СТРОКА(ДВССЫЛ(AQ3))-СТРОКА(ДВССЫЛ(AQ4)))/ПИ()*4;0)+4);4)

Подскажите - как эту операцию, превратить в макрос?
То есть - как сделать все то же самое, но макросом ?
Изменено: Просто Вова - 16 Май 2019 23:39:54
 
Цитата
Просто Вова написал:
как эту операцию, превратить в макрос?
разобраться в сложнейшем математическом преобразовании ATAN2(x1-x0;y1-y0) и заменив СТОЛБЕЦ(ДВССЫЛ(AQ4)) на Range(Range("AQ4")).column и прочее. сделав матрицу смещения написать соответствующий код.
Вам надо было сразу написать, что нужен макрос, на входе то, на выходе это.
 
Столько работы и - "коту под хвост"? На мой взгляд это очень нехорошо.
Страницы: 1
Читают тему (гостей: 1)
Наверх