Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Office Excel
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
Oleg395
3 / 3 / 0
Регистрация: 15.06.2015
Сообщений: 307
1

Сравнение и поиск максимальной суммы

31.10.2015, 17:47. Просмотров 1343. Ответов 53
Метки нет (Все метки)

Здравствуйте форумчане!
Нужно найти и выбрать максимальную сумму. из нескольких столбцов, сравнивая их между собой.
Как найти максимальное число. я знаю. А вот как найти максимальное число из суммы чисел. Вот вопрос!?
Прикрепил файл для примера:
0
Вложения
Тип файла: xlsx пример.xlsx (9.1 Кб, 8 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2015, 17:47
Ответы с готовыми решениями:

Поиск и сравнение значения в массиве
Собственно нужна помощь с датами и формулой массива, и вообще возможно ли это...

Поиск, сравнение и замена дублирующих значений
Здравствуйте, ув. форумчане! Столкнулся со следующей проблемой. Есть таблица из...

Поиск, сравнение, выборка значений разных столбцов. Сложение и их подсчёт
Здравствуйте форумчане. Возникла трудность в решении задачи. Прошу помочь!...

Поиск максимальной суммы делителей
Есть программ поиска НОД var a,b,c: integer; begin writeln('Введите...

Перебор массива, поиск максимальной суммы
Здравствуйте. Задали задачку, которую решаю уже двое суток. Итог - "говнокод",...

53
Oleg395
3 / 3 / 0
Регистрация: 15.06.2015
Сообщений: 307
31.10.2015, 22:53  [ТС] 21
Казанский, я по F9 и сделал в макросе. скорость увеличилась в 2,5 раза
0
AlexM
1766 / 1341 / 539
Регистрация: 04.09.2015
Сообщений: 2,645
31.10.2015, 22:54 22
Казанский, В моих формулах нет летучих функций.
0
Oleg395
3 / 3 / 0
Регистрация: 15.06.2015
Сообщений: 307
31.10.2015, 23:18  [ТС] 23
даже не F9 а SHIFT+F9. Вычисление активного 1 листа мне хватает

Добавлено через 39 секунд
AlexM, Я вашу формулу завтра проверю и отпишусь! Сейчас голова уже трещит...от этих формул.

Добавлено через 22 минуты
Казанский, Дааааа....., ваша формула тяжёлая оказалась. Работает конечно, но медленно. макрос раньше за 37сек управлялся . а теперь за 57. в1,7 раза время увеличилось. А добавил то всего 1 столбец с вашей формулой и 2 столбца с лёгкими формулами. Завтра формулу Алекса проверю.
0
Казанский
14141 / 5843 / 1532
Регистрация: 24.09.2011
Сообщений: 9,170
01.11.2015, 00:30 24
Цитата Сообщение от AlexM Посмотреть сообщение
В моих формулах нет летучих функций
Когда я писал сообщение, Ваших формул не видел. Я таких сложных формул писать не умею - когда возникает такая необходимость, руки тянутся к Alt+F11
0
Oleg395
3 / 3 / 0
Регистрация: 15.06.2015
Сообщений: 307
01.11.2015, 23:20  [ТС] 25
AlexM, Проверил ваш вариант. разницы в скорости никакой. секунда в секунду. Только ваш вариант в случае если сумма одинаковая выбирает хаотично. А Вариант Казанского, выбирает 1 попавшийся.
0
AlexM
1766 / 1341 / 539
Регистрация: 04.09.2015
Сообщений: 2,645
02.11.2015, 08:01 26
Цитата Сообщение от Oleg395 Посмотреть сообщение
если сумма одинаковая выбирает хаотично
Мой вариант выбирает последний.
В файле добавил формулу подобную формуле Казанского, но без летучей СМЕЩ(), которая выбирает первый попавшийся.
1
Вложения
Тип файла: xls пример5.xls (30.5 Кб, 2 просмотров)
AlexM
1766 / 1341 / 539
Регистрация: 04.09.2015
Сообщений: 2,645
02.11.2015, 08:12 27
Поправлюсь, мой вариант выбирает не последнее, а большее значение.
0
AlexM
1766 / 1341 / 539
Регистрация: 04.09.2015
Сообщений: 2,645
02.11.2015, 08:22 28
Еще добавил формулу. Теперь есть формула для первого, последнего и большего
1
Вложения
Тип файла: xls пример6.xls (31.0 Кб, 1 просмотров)
Oleg395
3 / 3 / 0
Регистрация: 15.06.2015
Сообщений: 307
02.11.2015, 13:59  [ТС] 29
AlexM, а какой параметр(числовое значение) в формулах отвечает за то , чтобы определять, 1-вое ,последнее или большее значение брать? или просто формулы разные и по разному действуют и из за этого получается так?
какая интересно быстрее формула из этих 3.

Добавлено через 4 минуты
да и заметил . что у вас в 5 и примере, та формула, что стоит в колонке с названием последнее, в 6 примере уже стоит под названием большее. Не понятно, так как она действует, как последнее или большее? вы наверно где то перепутали
0
AlexM
1766 / 1341 / 539
Регистрация: 04.09.2015
Сообщений: 2,645
02.11.2015, 14:10 30
То что большее, а не последнее заметил позже, и поправить файл 5 не получилось из-за ограничений форума на редактирование сообщений.
Исправился в файле шестом. Формулы разные. Можно еще для минимального сделать.
0
Oleg395
3 / 3 / 0
Регистрация: 15.06.2015
Сообщений: 307
02.11.2015, 14:20  [ТС] 31
AlexM, ооо. ДАВАЙТЕ. для последнего. точно пригодится.

Добавлено через 7 минут
AlexM, А что означает этот знак домиком и 0(даже не знаю где этот знак берётся на клавиатуре ). Не хочется быть уж совсем олухом, поэтому посвятите меня, что это за знаки и на что они влияют
0
AlexM
1766 / 1341 / 539
Регистрация: 04.09.2015
Сообщений: 2,645
02.11.2015, 14:47 32
Лучший ответ Сообщение было отмечено Oleg395 как решение

Решение

Вы наверно о фрагменте формулы СТРОКА(I$5:L6)^0 (этот фрагмент из 6 строки листа)
Функция МУМНОЖ() перемножает два массива. Первый транспонированный I$5:L6, а второй из единиц, с количеством строк, как у первого столбцов.
Транспонирование это когда строки становятся столбцами.
Получается что в первом аргументе массив из двух столбцов, а во втором из двух строк.
Знак ^ находится на клавише с цифрой 6. Обозначает степень. Любое число кроме нуля в степени 0 дает единицу. Этим приемом получаем нужный для правильной работы функции массив единиц.
1
Вложения
Тип файла: xls пример7.xls (32.0 Кб, 3 просмотров)
Oleg395
3 / 3 / 0
Регистрация: 15.06.2015
Сообщений: 307
02.11.2015, 15:10  [ТС] 33
AlexM, проверил остальные формулы. в принципе все одинаковые по тяжести. Но если уж совсем точно. т формула Казанского и Ваша по MIN, чуток быстрее 57,5 сек, а остальные же 58,5-59 сек
0
AlexM
1766 / 1341 / 539
Регистрация: 04.09.2015
Сообщений: 2,645
02.11.2015, 17:44 34
Цитата Сообщение от Oleg395 Посмотреть сообщение
чуток быстрее 57,5 сек, а остальные же 58,5-59 сек
Это какие размеры таблицы обрабатываются так долго?
Попробуйте функцию на время обработки
1
Вложения
Тип файла: xls пример8.xls (40.5 Кб, 2 просмотров)
Oleg395
3 / 3 / 0
Регистрация: 15.06.2015
Сообщений: 307
02.11.2015, 17:59  [ТС] 35
AlexM, это что за формулы такие? никогда не видел. они самостоятельные сами по себе или толжны работать в привязке к тем предыдущим формулам?
Формула на время обработки это что такое?
58 секунд это Ультра быстро! Но хочется и ещё быстрее, т.к. знаю что можно ещё выжать. Пару месяцев назад у меня данные расчёты происходили сутками! А теперь за 57 секунд Усовершенствовал макросы, сделал правильные формулы в правильных местах и увеличил до 1000 раз производительность.
0
AlexM
1766 / 1341 / 539
Регистрация: 04.09.2015
Сообщений: 2,645
02.11.2015, 18:13 36
=Rez(I$5:L5;N$5:Q5;1) Это функция пользователя. Alt+F11 смотрите код в модуле 1
Работает независимо от формул.
Имеет три аргумента.
1 - массив по которому определяется максимальная сумма
2 - массив из которого берется значение
3 - аргумент. Его значения указаны в файле.
Проверьте функцию на скорость так как вы проверяли формулы
0
Oleg395
3 / 3 / 0
Регистрация: 15.06.2015
Сообщений: 307
02.11.2015, 18:27  [ТС] 37
AlexM, Но у меня в других книгах совсем разные диапазоны столбцов и вообще расположение другое. Да и меняю я переодически расположение разных столбцов. Ваша функция будет работать всё равно?

Добавлено через 6 минут
AlexM, у меня диапазоны такие:
Visual Basic
1
=Rez($X$31:AW31;$BX$31:CW32;1)
$BX$31:CW32 именно со смещением вниз на одну строку должно быть, чтобы формула выбирала лучшую сумму на 1 строку выше.
Данный вариант не сработал. Я внёс ваш модуль в модули моей книги. Что сделал не так? что исправить нужно?
0
AlexM
1766 / 1341 / 539
Регистрация: 04.09.2015
Сообщений: 2,645
02.11.2015, 18:59 38
Первый диапазон одна строка, а у второго две строки. Так и формулы работать не будут.
0
Oleg395
3 / 3 / 0
Регистрация: 15.06.2015
Сообщений: 307
02.11.2015, 19:00  [ТС] 39
AlexM, а как нибудь со смещением возможно сделать?
0
AlexM
1766 / 1341 / 539
Регистрация: 04.09.2015
Сообщений: 2,645
02.11.2015, 19:07 40
Вот так со смещением
Код
=Rez($X$31:AW31;$BX$32:CW32;1)
Второй диапазон смещен вниз на одну строку
0
Вложения
Тип файла: xls пример9.xls (44.0 Кб, 1 просмотров)
02.11.2015, 19:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2015, 19:07

Поиск максимальной суммы соседних элементов массива
Добрый вечере, подскажите где ошибка. Мне нужно найти максимальную сумму двух...

Ввод элементов массива с клавиатуры, вычисление суммы по формуле, нахождение максимальной суммы
Помогите дополнить код. Нужно, чтоб элементы массива вводились с клавиатуры....

Графы: поиск в ширину, поиск вершины с максимальной степенью
Дан граф. Способ представления и метод обхода равен список смежности;поиск в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru