Страницы: 1
RSS
Использование результата выполнения функции как условия проверки ячейки, Или матрица как список.
 
Добрый день, уважаемые.
Возник тут вопрос. Имеется функция, результат действия которой - матрица (или вектор, не суть). Вопрос: Как данный результат, без использования ячеек листа, использовать в качестве списка для проверки допустимых значений в ячейках.
В качестве примера:

Есть пара столбцов (X Y), по ним вычисляем коэффициенты аппроксимирующего уравнения с помощью ЛИНЕЙН. Результат - вектор {1;0} (в данном примере).
Если я данное условие прописываю в качестве проверки данных ячейки (в примере Е2), то
а) выдаётся предупреждение о ошибке, но проверка вводится
б) вводимые данные проверяются (т.е. ввести можно только 1 и 0, т.е. коэф-ты соответствуют)
в) не отображается список
В связи с этим повторю вопрос, можно ли как то организовать выпадающий список?
ПыСы естественно ЛИНЕЙН взята в качестве примера.
ПыПыСы знаю что можно вывести в именованный список, и использовать его в качестве проверки. Но хочу без списка.
Изменено: tutochkin - 20.09.2022 08:12:57
 
tutochkin,
как я понял тут, ни как
Изменено: evgeniygeo - 20.09.2022 08:30:56
 
evgeniygeo,
Про динамические списки в курсе. Но тут не тот случай...
 
Цитата
tutochkin написал:
В связи с этим повторю вопрос, можно ли как то организовать выпадающий список?
Проверку - да. Выпадаюший список - нет. Последнее может быть только на листе или прямо в проверке через разделитель и более никак.
По вопросам из тем форума, личку не читаю.
 
Обидно... Опять через макросы прописывать придётся. Т.е. предварительно рассчитать,  а затем
Код
Sub Макрос2()
[A3].Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="1,2"
End Sub
 
ну а чем не устраивает область на листе?
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
ну а чем не устраивает область на листе?
Устраивает. Только искал варианты как от них (областей прокладок) отказаться.
 
Цитата
написал:
Т.е. предварительно рассчитать
Извиняюсь, так в макросе можно и рассчитать же?
Изменено: Александр П. - 20.09.2022 09:13:11
 
Цитата
tutochkin написал:
без использования ячеек листа, использовать в качестве списка для проверки
Несколько лет назад очень сильно заморочился этим вопросом. Не получилось  :cry:
Добавлено: без макросов не получилось, а я именно так хотел
Изменено: _Boroda_ - 20.09.2022 14:24:30
Скажи мне, кудесник, любимец ба’гов...
 
Цитата
написал:
Как данный результат, без использования ячеек листа, использовать в качестве списка для проверки допустимых значений в ячейках.В качестве примера:
Не сильный знаток, но попытаюсь угадать ), - сделать udf-ку, которая берет данные где нужно и возвращает в нужном виде.
Изменено: testuser - 20.09.2022 11:48:52
 
tutochkin, здравствуйте
По вопросу - не знаю, но можно вместо штатного инструмента использовать простенькую пользовательскую форму (с поиском, если нужно), а уж она примет массив, как родной  :D

Цитата
testuser: сделать udf-ку, которая берет данные где нужно и возвращает в нужном виде
шта…  8-0
Изменено: Jack Famous - 20.09.2022 12:22:38
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
но можно вместо штатного инструмента использовать простенькую пользовательскую форму
И каков смысл? Сломать наглядность например?
По вопросам из тем форума, личку не читаю.
 
Цитата
tutochkin: Имеется функция, результат действия которой …, без использования ячеек листа, использовать в качестве списка для проверки допустимых значений в ячейках
передаём в форму результат функции, выбираем только с помощью формы.

Если же выбирать не надо, а только контролировать, то вешаем макрос проверки на событие листа/книги или кнопку. Макрос берёт результат функции в словарь и проверяет заданный диапазон на корректность. Результат подсвечивает, выводит сообщением или как-то ещё.
То же, можно сделать и без макроса - с помощью УФ, как было сказано выше.

Цитата
БМВ: И каков смысл? Сломать наглядность например?
смысл — в осуществлении задуманного. А в чём поломка наглядности?
Изменено: Jack Famous - 20.09.2022 13:45:53
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
смысл — в осуществлении задуманного. А в чём поломка наглядности?
В случае с DV, работа ведется в той ячейке, в которой данные вводятся. С формой это не так, и даже если повесить Комбо по размерам ячейки, то будет только сложнее.
По вопросам из тем форума, личку не читаю.
 
БМВ, не понял - можно пример?
С формой всё должно быть как минимум, не сложнее, а также, в отличие от штатной проверки данных, реализуемо при указанных условиях…
Изменено: Jack Famous - 20.09.2022 14:16:21
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
на событие калькуляции
Код
With [E2].Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
    Formula1:=Join(Application.Evaluate(Sheet1.Range("f2").Formula), ",")
End With

а теперь тоже но с формой.
Изменено: БМВ - 20.09.2022 14:44:56
По вопросам из тем форума, личку не читаю.
 
БМВ, в условии сказано
Цитата
tutochkin: без использования ячеек листа
, а у тебя они используются, если я правильно понял.

С формой не сложно (как я делаю):
    1. Один раз рисуем форму с поиском и насыщаем её нужным кодом.
    2. Создаём стандартный модуль и прописываем туда функцию вызова формы с нужными параметрами типа
Код
f_FormAnswer(arrChoose, Optional MultiChoose As Boolean)As Variant()

    3. Вызываем форму по событию или кнопке одной строкой и получаем ответ в виде массива или значения (как угодно).
    4. При необходимости использования формы в очередном файле, переносим модуль формы и стандартный модуль в этот файл.
Изменено: Jack Famous - 20.09.2022 15:04:48
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
используются ячейки на основании которых производится расчет, также как и формула берется из ячейки куда она внесена.

Я и говорю, нарисуй все это.
По вопросам из тем форума, личку не читаю.
 
Цитата
Jack Famous написал:
а у тебя они используются, если я правильно понял.
Нет. Итак, я просто не хочу грузить всем расчётом, но суть такая:
1. Есть некоторый набор данных. Эти данные обрабатываются в макросе-функции, и результатом может быть несколько решений, которые выводятся в виде матрицы. Простая аналогия - график несколько раз пересекающий ось Х, а макрос находит все пересечения.
2. На данный момент одним из входных аргументов является номер найденного решения.
3. В дальнейшем я перебираю эти номера (через выпадающий список расположенный в отдельной ячейке...), и визуально по построенным на основании полученных решения, графикам определяю то решение, которое подходит в конкретном случае....

Немного скомкано, но суть думаю ясна. Просто хотел избавиться от лишней ячейки выбора номера решения.

И да, не ссорьтесь. Нельзя, так нельзя.
 
tutochkin, может просто построить тем же макросом сразу все графики на отдельных листах?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, Алексей, тема о чем?
По вопросам из тем форума, личку не читаю.
 
Цитата
Jack Famous написал:
может просто построить тем же макросом сразу все графики на отдельных листах?
В теории можно, но иметь десяток объёмных расчётов, чтобы потом оставить один... не красиво.
 
Цитата
БМВ: тема о чем?
Цитата
tutochkin: Использование результата выполнения функции как условия проверки ячейки
я дал вариант с формой. Тебе он не понравился. tutochkin про это ответа не дал.
Если моё предложение
Цитата
Jack Famous: построить тем же макросом сразу все графики на отдельных листах
является отклонением от темы, то не ты ли (и не только ты) в каждой теме пытаешься выяснить СУТЬ ЗАДАЧИ и решаешь её, а не строго по названию темы…

Я так понимаю, меня снова также забанят, если я просто буду отвечать на вопросы модератора?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, Алексей, ну согласись, вопрос от выпадающего списка перешел в несколько графиков.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ: согласись, вопрос от выпадающего списка перешел в несколько графиков.
согласен, но не просто же так, а после слов ТСа
Цитата
tutochkin: В дальнейшем я перебираю эти номера (через выпадающий список расположенный в отдельной ячейке...), и визуально по построенным на основании полученных решения, графикам определяю то решение, которое подходит в конкретном случае
если ТС перебирает графики, то я и предложил просто сразу их построить… Не прав?

UPD: также есть предложение рассмотреть вопрос решения задачки математикой, чтобы не смотреть газами, а сразу понять, что "подходит" больше всего. Но, если предложение о построении всех графиков это просто да/нет, то математическое решение - точно для другой темы и другими примерами.
Изменено: Jack Famous - 21.09.2022 12:21:32
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх