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

Вход

Регистрация

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

 

= Мир MS Excel/Специфичная сортировка массива - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Специфичная сортировка массива (Формулы/Formulas)
Специфичная сортировка массива
daledale Дата: Четверг, 31.01.2019, 21:16 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Попытаюсь объяснить что нужно (если получится))). Итак, допустим есть массив чисел, условно 4 столбца. У каждого из столбцов есть названия заголовков. Построчно формируются некие значения. Строк в реальности много, для простоты их пусть будет 3. Собственно что нужно:
1. Сортируем каждую строку по значениям, по возрастанию.
2. В результате пусть будет второй параллельный массив, к примеру, но на месте значений должны быть заголовки столбцов (впрочем это не самоцель и можно этого не делать, см. далее).
3. Собственно в результате предыдущей сортировки, заголовки столбцов будут находиться на неких новых местах. Собственно конкретное местонахождения заголовка - это как бы его вес, получается. Максимальное значение этого "веса" будет равно количеству столбцов, в данном случае 4.
4. В результате уже точно нужен некий новый массив, который получим.

Подытожу. Сортировка, второй промежуточный массив не самоцель. Конечная цель - получить новый массив, см. вложенный файл.
Извиняюсь заранее, что может путанно объяснил, но готов ответить на уточняющие вопросы.
Спасибо, кто откликнется.

ps Подправил вложенный файл, там в результирующей таблице допустил ошибку.
К сообщению приложен файл: tabl-3-2-.xlsx(9.5 Kb)


Сообщение отредактировал daledale - Четверг, 31.01.2019, 21:45
 
Ответить
СообщениеПопытаюсь объяснить что нужно (если получится))). Итак, допустим есть массив чисел, условно 4 столбца. У каждого из столбцов есть названия заголовков. Построчно формируются некие значения. Строк в реальности много, для простоты их пусть будет 3. Собственно что нужно:
1. Сортируем каждую строку по значениям, по возрастанию.
2. В результате пусть будет второй параллельный массив, к примеру, но на месте значений должны быть заголовки столбцов (впрочем это не самоцель и можно этого не делать, см. далее).
3. Собственно в результате предыдущей сортировки, заголовки столбцов будут находиться на неких новых местах. Собственно конкретное местонахождения заголовка - это как бы его вес, получается. Максимальное значение этого "веса" будет равно количеству столбцов, в данном случае 4.
4. В результате уже точно нужен некий новый массив, который получим.

Подытожу. Сортировка, второй промежуточный массив не самоцель. Конечная цель - получить новый массив, см. вложенный файл.
Извиняюсь заранее, что может путанно объяснил, но готов ответить на уточняющие вопросы.
Спасибо, кто откликнется.

ps Подправил вложенный файл, там в результирующей таблице допустил ошибку.

Автор - daledale
Дата добавления - 31.01.2019 в 21:16
Pelena Дата: Четверг, 31.01.2019, 21:29 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 14234
Репутация: 3110 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Код
=ПОИСКПОЗ(НАИМЕНЬШИЙ($B2:$E2;СТОЛБЕЦ(A1));$B2:$E2;0)

только с Вашими результатами не везде сошлось
К сообщению приложен файл: tabl.xlsx(11.3 Kb)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщение
Код
=ПОИСКПОЗ(НАИМЕНЬШИЙ($B2:$E2;СТОЛБЕЦ(A1));$B2:$E2;0)

только с Вашими результатами не везде сошлось

Автор - Pelena
Дата добавления - 31.01.2019 в 21:29
daledale Дата: Четверг, 31.01.2019, 21:35 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena
Огромное Вам спасибо!
только с Вашими результатами не везде сошлось

Ну да, мало того что я Excel не знаю, так ещё у меня и с математикой проблемы)).
ps Исправил ранее вложенный файл.
Спасибо большущщее!
 
Ответить
СообщениеPelena
Огромное Вам спасибо!
только с Вашими результатами не везде сошлось

Ну да, мало того что я Excel не знаю, так ещё у меня и с математикой проблемы)).
ps Исправил ранее вложенный файл.
Спасибо большущщее!

Автор - daledale
Дата добавления - 31.01.2019 в 21:35
daledale Дата: Четверг, 31.01.2019, 22:15 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Небольшая проблемка выявилась. Впрочем она ожидаема для ПОИСКПОЗ. Дело в том, что в случае одинаковых исходных значений, выводится несколько раз имя столбца/заголовка.
Ну т.е. для рассматриваемого примера, например для последовательности 3-ей строки вида: 5 5 1 2 - получаем матрицу вида 3 4 1 1, а дб разумеется, например 3 4 1 2 или 3 4 2 1 (не принципиально).


Сообщение отредактировал daledale - Четверг, 31.01.2019, 22:17
 
Ответить
СообщениеНебольшая проблемка выявилась. Впрочем она ожидаема для ПОИСКПОЗ. Дело в том, что в случае одинаковых исходных значений, выводится несколько раз имя столбца/заголовка.
Ну т.е. для рассматриваемого примера, например для последовательности 3-ей строки вида: 5 5 1 2 - получаем матрицу вида 3 4 1 1, а дб разумеется, например 3 4 1 2 или 3 4 2 1 (не принципиально).

Автор - daledale
Дата добавления - 31.01.2019 в 22:15
Pelena Дата: Четверг, 31.01.2019, 22:24 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 14234
Репутация: 3110 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Предыдущую формулу можно было покороче записать
Код
=РАНГ(B2;$B2:$E2;1)

а с учётом одинаковых, так проверьте
Код
=РАНГ(B2;$B2:$E2;1)+СЧЁТЕСЛИ($B2:B2;B2)-1


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеПредыдущую формулу можно было покороче записать
Код
=РАНГ(B2;$B2:$E2;1)

а с учётом одинаковых, так проверьте
Код
=РАНГ(B2;$B2:$E2;1)+СЧЁТЕСЛИ($B2:B2;B2)-1

Автор - Pelena
Дата добавления - 31.01.2019 в 22:24
daledale Дата: Четверг, 31.01.2019, 22:49 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Вопрос решён. Спасибо. Я тут сам запутался в своей задаче! Огромное Вам спасибо. Всё правильно.


Сообщение отредактировал daledale - Четверг, 31.01.2019, 22:57
 
Ответить
СообщениеВопрос решён. Спасибо. Я тут сам запутался в своей задаче! Огромное Вам спасибо. Всё правильно.

Автор - daledale
Дата добавления - 31.01.2019 в 22:49
Pelena Дата: Четверг, 31.01.2019, 22:57 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 14234
Репутация: 3110 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Вроде, всё правильно. Где ошибка?


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеВроде, всё правильно. Где ошибка?

Автор - Pelena
Дата добавления - 31.01.2019 в 22:57
daledale Дата: Четверг, 31.01.2019, 22:58 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Извините. Я просто запутался немного. В своей же постановке задачи. Выше отписал. Всё верно. Просто огромное человеческое спасибо Вам!
 
Ответить
СообщениеИзвините. Я просто запутался немного. В своей же постановке задачи. Выше отписал. Всё верно. Просто огромное человеческое спасибо Вам!

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

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