Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Нумерация точек массива - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Нумерация точек массива (Формулы/Formulas)
Нумерация точек массива
lfuthobr Дата: Среда, 15.07.2020, 08:47 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
На первом листе есть массив точек 50х50. В каждой ячейке массива внесена "глубина" элемента от 1 до 24. На второй лист вынесены только те элементы массива которые удовлетворяют заданной "глубине". На третьем листе необходимо пронумировать эти точки от 1 до n начиная с левого верхнего угла по часовой стрелке, то есть нужно получить тот же массив но вместо значений глубины в ячейки занести номер данного элемента. При этом формула должна работать на весь диапазон 50х50 Пробывал простой математикой решить данную задачу через накладывание координат но увы...
К сообщению приложен файл: 6138333.xlsx (79.1 Kb)
 
Ответить
СообщениеНа первом листе есть массив точек 50х50. В каждой ячейке массива внесена "глубина" элемента от 1 до 24. На второй лист вынесены только те элементы массива которые удовлетворяют заданной "глубине". На третьем листе необходимо пронумировать эти точки от 1 до n начиная с левого верхнего угла по часовой стрелке, то есть нужно получить тот же массив но вместо значений глубины в ячейки занести номер данного элемента. При этом формула должна работать на весь диапазон 50х50 Пробывал простой математикой решить данную задачу через накладывание координат но увы...

Автор - lfuthobr
Дата добавления - 15.07.2020 в 08:47
прохожий2019 Дата: Среда, 15.07.2020, 13:05 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1242
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
ну если диапазон будет с B2 а не с A1, то можно так:
Код
=ЕСЛИ('Массив с заданной глубиной'!F6=$BD$3;
ЕСЛИ((СЧЁТЕСЛИ('Массив с заданной глубиной'!$A$1:E6;$BD$3)+СЧЁТЕСЛИ('Массив с заданной глубиной'!F$1:F5;$BD$3))=0;1;
ЕСЛИ(СЧЁТЕСЛИ('Массив с заданной глубиной'!$A$1:F5;$BD$3)=0;E6+1;
ЕСЛИ(СЧЁТЕСЛИ('Массив с заданной глубиной'!G$1:$AZ6;$BD$3)=0;F5+1;
ЕСЛИ(СЧЁТЕСЛИ('Массив с заданной глубиной'!F7:$AY$51;$BD$3)=0;G6+1;F7+1))));"")
К сообщению приложен файл: 4747534.xlsx (157.0 Kb)
 
Ответить
Сообщениену если диапазон будет с B2 а не с A1, то можно так:
Код
=ЕСЛИ('Массив с заданной глубиной'!F6=$BD$3;
ЕСЛИ((СЧЁТЕСЛИ('Массив с заданной глубиной'!$A$1:E6;$BD$3)+СЧЁТЕСЛИ('Массив с заданной глубиной'!F$1:F5;$BD$3))=0;1;
ЕСЛИ(СЧЁТЕСЛИ('Массив с заданной глубиной'!$A$1:F5;$BD$3)=0;E6+1;
ЕСЛИ(СЧЁТЕСЛИ('Массив с заданной глубиной'!G$1:$AZ6;$BD$3)=0;F5+1;
ЕСЛИ(СЧЁТЕСЛИ('Массив с заданной глубиной'!F7:$AY$51;$BD$3)=0;G6+1;F7+1))));"")

Автор - прохожий2019
Дата добавления - 15.07.2020 в 13:05
lfuthobr Дата: Среда, 15.07.2020, 13:37 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
прохожий2019, Спасибо огромное! А есть более универсальное решение, если например эту будет не квадрат а ромб, то есть будет иметь место диагональное положение интересуемых ячеек. Прилагаю файл с примером.
К сообщению приложен файл: 1346848.xlsx (156.9 Kb)
 
Ответить
Сообщениепрохожий2019, Спасибо огромное! А есть более универсальное решение, если например эту будет не квадрат а ромб, то есть будет иметь место диагональное положение интересуемых ячеек. Прилагаю файл с примером.

Автор - lfuthobr
Дата добавления - 15.07.2020 в 13:37
прохожий2019 Дата: Среда, 15.07.2020, 15:56 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1242
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
более универсальное решение
ну разве что через угол... (но это с еще одним доп. диапазоном или с модификацией имеющегося - см. второй файл)
начало координат
X
Код
=СРЗНАЧ(ЕСЛИ('Массив с заданной глубиной'!B2:AY51=BD3;СТОЛБЕЦ('Массив с заданной глубиной'!B2:AY51);""))
Y
Код
=СРЗНАЧ(ЕСЛИ('Массив с заданной глубиной'!B2:AY51=BD3;СТРОКА('Массив с заданной глубиной'!B2:AY51);""))

доп.диапазон:
Код
=ЕСЛИ(ЕЧИСЛО('Массив с заданной глубиной'!B2);ОСТАТ(ЕСЛИ((СТОЛБЕЦ('Массив с заданной глубиной'!B2)-$BE$6)>0;0,75;ЕСЛИ((СТРОКА('Массив с заданной глубиной'!B2)-$BE$7)<0;-0,25;1,75))*ПИ()+ATAN((СТРОКА('Массив с заданной глубиной'!B2)-$BE$7)/(СТОЛБЕЦ('Массив с заданной глубиной'!B2)-$BE$6));2*ПИ());"")
сам номер:
Код
=ЕСЛИ('Массив с заданной глубиной'!B2=$BD$3;РАНГ(BI2;$BI$2:$DF$51;1);"")
К сообщению приложен файл: 4792502.xlsx (157.8 Kb) · 1122220.xlsx (120.8 Kb)


Сообщение отредактировал прохожий2019 - Среда, 15.07.2020, 21:31
 
Ответить
Сообщение
более универсальное решение
ну разве что через угол... (но это с еще одним доп. диапазоном или с модификацией имеющегося - см. второй файл)
начало координат
X
Код
=СРЗНАЧ(ЕСЛИ('Массив с заданной глубиной'!B2:AY51=BD3;СТОЛБЕЦ('Массив с заданной глубиной'!B2:AY51);""))
Y
Код
=СРЗНАЧ(ЕСЛИ('Массив с заданной глубиной'!B2:AY51=BD3;СТРОКА('Массив с заданной глубиной'!B2:AY51);""))

доп.диапазон:
Код
=ЕСЛИ(ЕЧИСЛО('Массив с заданной глубиной'!B2);ОСТАТ(ЕСЛИ((СТОЛБЕЦ('Массив с заданной глубиной'!B2)-$BE$6)>0;0,75;ЕСЛИ((СТРОКА('Массив с заданной глубиной'!B2)-$BE$7)<0;-0,25;1,75))*ПИ()+ATAN((СТРОКА('Массив с заданной глубиной'!B2)-$BE$7)/(СТОЛБЕЦ('Массив с заданной глубиной'!B2)-$BE$6));2*ПИ());"")
сам номер:
Код
=ЕСЛИ('Массив с заданной глубиной'!B2=$BD$3;РАНГ(BI2;$BI$2:$DF$51;1);"")

Автор - прохожий2019
Дата добавления - 15.07.2020 в 15:56
lfuthobr Дата: Среда, 15.07.2020, 22:02 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
прохожий2019, Спасибо, все идеально. Не понял только зачем вычислять х и у через среднее а не прост очерез края значений в диапазоне /2. И часть формулы номера.
 
Ответить
Сообщениепрохожий2019, Спасибо, все идеально. Не понял только зачем вычислять х и у через среднее а не прост очерез края значений в диапазоне /2. И часть формулы номера.

Автор - lfuthobr
Дата добавления - 15.07.2020 в 22:02
прохожий2019 Дата: Среда, 15.07.2020, 22:07 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1242
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
а не прост очерез края значений в диапазоне /2
ну если вам так проще - замените
И часть формулы номера
что не ясно?
 
Ответить
Сообщение
а не прост очерез края значений в диапазоне /2
ну если вам так проще - замените
И часть формулы номера
что не ясно?

Автор - прохожий2019
Дата добавления - 15.07.2020 в 22:07
lfuthobr Дата: Среда, 15.07.2020, 22:49 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
прохожий2019, как я понял строится луч и вычисляется расстояние от центра координат по лучу до точки, не понятны цифры 0,75 0,25 1
 
Ответить
Сообщениепрохожий2019, как я понял строится луч и вычисляется расстояние от центра координат по лучу до точки, не понятны цифры 0,75 0,25 1

Автор - lfuthobr
Дата добавления - 15.07.2020 в 22:49
прохожий2019 Дата: Среда, 15.07.2020, 23:20 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1242
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
нет, находится полярный угол в радианах. Угол получаем через ATAN и делаем поправку на квадрант (курите полярные координаты). Проблема в том, что нумерация нужна из левого верхнего угла, а это система координат, повернутая на 45 градусов или 0,25*ПИ() в радианах. См. второй файл (1122220.xlsx) - там угол поворота можно задавать


Сообщение отредактировал прохожий2019 - Четверг, 16.07.2020, 00:08
 
Ответить
Сообщениенет, находится полярный угол в радианах. Угол получаем через ATAN и делаем поправку на квадрант (курите полярные координаты). Проблема в том, что нумерация нужна из левого верхнего угла, а это система координат, повернутая на 45 градусов или 0,25*ПИ() в радианах. См. второй файл (1122220.xlsx) - там угол поворота можно задавать

Автор - прохожий2019
Дата добавления - 15.07.2020 в 23:20
Светлый Дата: Пятница, 17.07.2020, 10:01 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Если при нумерации необязательно брать соседние, можно использовать такую формулу:
Код
=ЕСЛИ('Массив с заданной глубиной'!A1="";"";МАКС(ЕСЛИ(СТРОКА()>1;СМЕЩ($A$1:$AX$1;;;СТРОКА()-1));ЕСЛИ(СТОЛБЕЦ()>1;СМЕЩ($A1;;;;СТОЛБЕЦ()-1)))+1)


Программировать проще, чем писать стихи.
 
Ответить
СообщениеЕсли при нумерации необязательно брать соседние, можно использовать такую формулу:
Код
=ЕСЛИ('Массив с заданной глубиной'!A1="";"";МАКС(ЕСЛИ(СТРОКА()>1;СМЕЩ($A$1:$AX$1;;;СТРОКА()-1));ЕСЛИ(СТОЛБЕЦ()>1;СМЕЩ($A1;;;;СТОЛБЕЦ()-1)))+1)

Автор - Светлый
Дата добавления - 17.07.2020 в 10:01
прохожий2019 Дата: Пятница, 17.07.2020, 11:24 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 1242
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
Светлый, по вашему варианту номера не уникальные получаются
К сообщению приложен файл: 6138333-1-.xlsx (116.9 Kb)
 
Ответить
СообщениеСветлый, по вашему варианту номера не уникальные получаются

Автор - прохожий2019
Дата добавления - 17.07.2020 в 11:24
Светлый Дата: Пятница, 17.07.2020, 12:00 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Цитата прохожий2019, 17.07.2020 в 11:24, в сообщении № 10 ()
номера не уникальные получаются
А куда Вы формулу вставили?
К сообщению приложен файл: 6138333-1-1.xlsx (110.2 Kb)


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Цитата прохожий2019, 17.07.2020 в 11:24, в сообщении № 10 ()
номера не уникальные получаются
А куда Вы формулу вставили?

Автор - Светлый
Дата добавления - 17.07.2020 в 12:00
прохожий2019 Дата: Пятница, 17.07.2020, 12:12 | Сообщение № 12
Группа: Проверенные
Ранг: Старожил
Сообщений: 1242
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
точно, увидел, спасибо
с таким подходим к нумерации можно и так:
Код
=ЕСЛИ('Массив с заданной глубиной'!B2<>"";СЧЁТ('Массив с заданной глубиной'!$A$1:$AY1;$A2:A2)+1;"")
К сообщению приложен файл: 2977915.xlsx (119.2 Kb)
 
Ответить
Сообщениеточно, увидел, спасибо
с таким подходим к нумерации можно и так:
Код
=ЕСЛИ('Массив с заданной глубиной'!B2<>"";СЧЁТ('Массив с заданной глубиной'!$A$1:$AY1;$A2:A2)+1;"")

Автор - прохожий2019
Дата добавления - 17.07.2020 в 12:12
Светлый Дата: Пятница, 17.07.2020, 15:00 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
В первом файле пришлось учитывать границы на первой строке и первом столбце.
Если пустые границы сделать, то ещё проще:
Код
=ЕСЛИ('Массив с заданной глубиной'!B2="";"";МАКС($A$1:$AY1;$A2:A2)+1)


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Пятница, 17.07.2020, 15:03
 
Ответить
СообщениеВ первом файле пришлось учитывать границы на первой строке и первом столбце.
Если пустые границы сделать, то ещё проще:
Код
=ЕСЛИ('Массив с заданной глубиной'!B2="";"";МАКС($A$1:$AY1;$A2:A2)+1)

Автор - Светлый
Дата добавления - 17.07.2020 в 15:00
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Нумерация точек массива (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!