И снова всех с Новым Годом! Опять возникла задача ещё сложнее предыдущей. Дело вот в чём...
Существует таблица, по которой нужно определить 2 параметра длины. Причём определить необходимо с довольно сильной головной болью. Дано число (в примере я указал Q=3675), но оно не постоянно, то есть будет изменяться, к счастью, только оно. По этому числу нужно определить наиболее рациональный вариант оборудования. Определяется этот вариант диапазоном. То есть если Q=3675, то оно подходит и в промежуток между 2720-3800, и в 3240-4520, и в 2850-3990, и т. д., вариантов может быть несколько, но необходимо выбрать только один, а именно наименьшей, у которого первое число из данного диапазона будет самым маленьким. После того как оптимальный диапазон найден, из столбцов "a", "b" и правой части колонки "Циклон" (там, где вписаны "УЦ-450", "УЦ-500", и т. д.) нужно вывести все 3 значения, которые будут соответствовать выбранному ранее диапазону. Похожим образом, как я показал справа (Результат). И финальная часть этой оперы - это вывод числа из самой левой колонки (левой части колонки "Циклон", где повторяются цифры "2", "3" и "4"). Тоже похожим образом, как в "Результате"
P.S. Таблицу можно изменять как хочется, главное, чтобы было удобно оперировать с ней. И мини таблицу "Результат" тоже...
И снова всех с Новым Годом! Опять возникла задача ещё сложнее предыдущей. Дело вот в чём...
Существует таблица, по которой нужно определить 2 параметра длины. Причём определить необходимо с довольно сильной головной болью. Дано число (в примере я указал Q=3675), но оно не постоянно, то есть будет изменяться, к счастью, только оно. По этому числу нужно определить наиболее рациональный вариант оборудования. Определяется этот вариант диапазоном. То есть если Q=3675, то оно подходит и в промежуток между 2720-3800, и в 3240-4520, и в 2850-3990, и т. д., вариантов может быть несколько, но необходимо выбрать только один, а именно наименьшей, у которого первое число из данного диапазона будет самым маленьким. После того как оптимальный диапазон найден, из столбцов "a", "b" и правой части колонки "Циклон" (там, где вписаны "УЦ-450", "УЦ-500", и т. д.) нужно вывести все 3 значения, которые будут соответствовать выбранному ранее диапазону. Похожим образом, как я показал справа (Результат). И финальная часть этой оперы - это вывод числа из самой левой колонки (левой части колонки "Циклон", где повторяются цифры "2", "3" и "4"). Тоже похожим образом, как в "Результате"
P.S. Таблицу можно изменять как хочется, главное, чтобы было удобно оперировать с ней. И мини таблицу "Результат" тоже...Death4ever
Public Sub www() Dim r As Range, a, i&, n& n = [O9] a = [d6:i23].Value ReDim b(1 To 4) For i = 1 To UBound(a) If n >= a(i, 3) And n <= a(i, 4) Then b(1) = a(i, 1) b(2) = a(i, 2) b(3) = a(i, 5) b(4) = a(i, 6) [m14:p14] = b Exit Sub End If Next End Sub
[/vba]
[vba]
Код
Public Sub www() Dim r As Range, a, i&, n& n = [O9] a = [d6:i23].Value ReDim b(1 To 4) For i = 1 To UBound(a) If n >= a(i, 3) And n <= a(i, 4) Then b(1) = a(i, 1) b(2) = a(i, 2) b(3) = a(i, 5) b(4) = a(i, 6) [m14:p14] = b Exit Sub End If Next End Sub
Спасибо огромное за помощь, но немножко не сходиться. Допустим, если поменять Q на (допустим) 1550 или 2750, то видно, что есть диапазоны выше, которые являются более приемлемыми. Извините, это, наверное, моя ошибка. Я неправильно объяснил. Наилучшим вариантом оборудования, будет не наименьшее число в диапазоне, а что бы выбираемый диапазон был как можно выше. Грубо говоря, нужно выбрать самый верхний из всех диапазонов, а по нему уже выбрать 2 или 3, УЦ-450 или УЦ-500. То есть если Q=2400, то оптимальным циклоном будет 4 УЦ-450, а если Q=3200, то циклон 4 УЦ-550.
P.S. Простите ещё раз за неграмотное описание задачки...помогите пожалуйста ещё раз P.S.S. Небольшое отступление от темы, объясните ещё пожалуйста, как выделять ячейки цветом, когда нужная ячейка из таблицы является результатом поиска. Не могу объяснить корректно, но я говорю про выделение серым цветом всех диапазонов, которые подходят по критерию в предыдущем посте с примером решения...
Спасибо огромное за помощь, но немножко не сходиться. Допустим, если поменять Q на (допустим) 1550 или 2750, то видно, что есть диапазоны выше, которые являются более приемлемыми. Извините, это, наверное, моя ошибка. Я неправильно объяснил. Наилучшим вариантом оборудования, будет не наименьшее число в диапазоне, а что бы выбираемый диапазон был как можно выше. Грубо говоря, нужно выбрать самый верхний из всех диапазонов, а по нему уже выбрать 2 или 3, УЦ-450 или УЦ-500. То есть если Q=2400, то оптимальным циклоном будет 4 УЦ-450, а если Q=3200, то циклон 4 УЦ-550.
P.S. Простите ещё раз за неграмотное описание задачки...помогите пожалуйста ещё раз P.S.S. Небольшое отступление от темы, объясните ещё пожалуйста, как выделять ячейки цветом, когда нужная ячейка из таблицы является результатом поиска. Не могу объяснить корректно, но я говорю про выделение серым цветом всех диапазонов, которые подходят по критерию в предыдущем посте с примером решения...Death4ever
Сообщение отредактировал Death4ever - Четверг, 02.01.2014, 17:05
Ошибка всё равно появляется, если ввести Q=1550, то он результатом будет циклон 2 УЦ-500, но лучшим вариантом является 3 УЦ-450 Можно ещё у вас поинтересоваться, как вы делаете выделение серым, а то это меня весьма заинтересовало, и помогло бы в дальнейшей работе?
Если честно, то я понятия не имею ничего насчёт макросов, и, соответственно, переписать их не сумею. А таких похожих таблиц будет ещё много, как минимум ещё 6...
Вариант, конечно, хороший, гораздо проще предыдущих, основанный на одном поиске, и выдаче простых результатов, как следствие из него, но по-прежнему присутствует ошибка. Если Q=2750, то результатом выводиться 4 УЦ-550, но оптимальный выбор 4 УЦ-500
Ошибка всё равно появляется, если ввести Q=1550, то он результатом будет циклон 2 УЦ-500, но лучшим вариантом является 3 УЦ-450 Можно ещё у вас поинтересоваться, как вы делаете выделение серым, а то это меня весьма заинтересовало, и помогло бы в дальнейшей работе?
Если честно, то я понятия не имею ничего насчёт макросов, и, соответственно, переписать их не сумею. А таких похожих таблиц будет ещё много, как минимум ещё 6...
Вариант, конечно, хороший, гораздо проще предыдущих, основанный на одном поиске, и выдаче простых результатов, как следствие из него, но по-прежнему присутствует ошибка. Если Q=2750, то результатом выводиться 4 УЦ-550, но оптимальный выбор 4 УЦ-500Death4ever
необходимо выбрать только один, а именно наименьшей, у которого первое число из данного диапазона будет самым маленьким
Вы как-то сами себе противоречите При Q=2750 подходящими будут 2240-3140 - 4 УЦ-500 и 2040-2850 - 3 УЦ-550, однако первое число диапазона меньше у 3 УЦ-550 (2040)
необходимо выбрать только один, а именно наименьшей, у которого первое число из данного диапазона будет самым маленьким
Вы как-то сами себе противоречите При Q=2750 подходящими будут 2240-3140 - 4 УЦ-500 и 2040-2850 - 3 УЦ-550, однако первое число диапазона меньше у 3 УЦ-550 (2040)
по-прежнему присутствует ошибка. Если Q=2750, то результатом выводиться 4 УЦ-550, но оптимальный выбор 4 УЦ-500
Объясните, почему. В моем варианте находится наибольшее значение столбца D, при котором искомое попадает в диапазон Q, м3/ч. Далее находится строка, расположенная ниже других (строка с большим порядковым номером). Последнее - определяется циклон (текстовое значение), которому принадлежит найденная строка.
по-прежнему присутствует ошибка. Если Q=2750, то результатом выводиться 4 УЦ-550, но оптимальный выбор 4 УЦ-500
Объясните, почему. В моем варианте находится наибольшее значение столбца D, при котором искомое попадает в диапазон Q, м3/ч. Далее находится строка, расположенная ниже других (строка с большим порядковым номером). Последнее - определяется циклон (текстовое значение), которому принадлежит найденная строка.vikttur
Сообщение отредактировал vikttur - Четверг, 02.01.2014, 22:40