Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Проверка данных. Источник = массив констант
 
Дорогие друзья!
Подскажите, пожалуйста, появилась ли в современных версиях MS Excel возможность как-то обойти запрет на использование одномерного массива констант в качестве источника данных для выпадающего списка (проверка данных)?
Я раскопал на форуме аналогичную тему 2012 года, но тогда такой возможности не было найдено.
Всем здоровья и жизнелюбия!
Для произвольной последовательности натуральных чисел нужно определить такое число, чтобы сумма чисел больше него оказалась равна заданной доле от суммы всех чисел последовательности, Можно ли найти это число без промежуточной сортировки?
 
Прошу помощи в решении следующей задачи:
Дана произвольная последовательность положительных чисел [для простоты иллюстрации: натуральных].
Можно ли без предварительной сортировки этой последовательности определить такое число, чтобы сумма всех чисел больше него оказалась бы больше 80% от суммы всех чисел?
Отдельно стоит вопрос что можно сделать, если таких чисел в последовательности несколько, а запрошенная граница проходит через середину их ряда...
Автоматизация работы инструмента Подбор параметра для нескольких ячеек последовательно, упрощение записи макрорекодера
 
Уважаемые коллеги,
Прошу помощи в упрощении кода, записанного макрорекодером
Код
Sub Подбор()
'
' Подбор Макрос
' Подбор параметра в трех ячейках последовательно
'

'
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Range("C7").GoalSeek Goal:=0, ChangingCell:=Range("C8")
    Range("D7").Select
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Range("D7").GoalSeek Goal:=0, ChangingCell:=Range("D8")
    Range("E7").Select
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Range("E7").GoalSeek Goal:=0, ChangingCell:=Range("E8")
    Range("E11").Select
End Sub
Суть задачи: Нажатием на одну кнопку найти такое значение переменной, чтобы обратить в ноль проверочное значение (добиться заранее заданного результата вычисления целевой функции) последовательно для трех независимых друг от друга функций.

Мне кажется, что текст макроса можно несколько упростить, но сам я за это не возьмусь :) Прошу поддержки.
Конвертация текста "{2;3;4}" в вектор {2;3;4}
 
В продолжение своей предыдущей темы
Обращение к диапазону внутри именованной таблицы констант

Я пытаюсь найти оптимальный вариант передачи в формулу
Код
=ИНДЕКС(Таблица;2;Ч(ТРАНСП(СТРОКА(2:4))))
параметра извне.
В принципе можно обойтись традиционным способом при помощи функции ДВССЫЛ(индекс_начала&":"&индекс_конца;1), но если получится хранить индексы в виде текстовой строки, а затем преобразовать ее вектор, то можно будет отказаться от всей связки функций Ч(ТРАНСП(СТРОКА(ДВССЫЛ(...

Формальная задача: ТРЕБУЕТСЯ получить массив {11;21;31} из второй строки ТАБЛИЦЫ опираясь на ДВА числовых параметра, записанных в ячейках C36:D36, или на ЕДИНЫЙ текстовый параметр, записанный в ячейке D40…
Обращение к диапазону внутри именованной таблицы констант
 
Коллеги!
Прошу помощи при решении следующей задачи:
Пусть организована некоторая таблица числовых и текстовых констант, представленная в виде именованного диапазона "Таблица"
При помощи функции ИНДЕКС() я могу обратиться к конкретному значению таблицы или к целой строке/столбцу внутри нее.
Я ищу возможность при помощи формул вернуть часть указанной строки по аналогии с работой функции СМЕЩ().
Мне бы даже подошел вариант, выдергивающий по одному нужные мне значения из большой таблицы и собирающие их в новый одномерный диапазон...

Пока мне удалось научиться возвращать целую строку таблицы, но замещать нулями ненужные данные. А хочется ненужное полностью обрезать - получать короткую строку.

Есть ли у Вас идеи как можно этого добиться?  
Определить количество непустых текстов, упрощение формулы
 
Уважаемые коллеги,

Подскажите, можно ли проще определять количество непустых ячеек в текстовом диапазоне нежели чем как разницу между числом ячеек и числом_пустот?
Автоматизация перебора значений ячейке до выполнения условия УФ, Нахождение функции обратной к заданной
 
Уважаемые коллеги,

Передо мной стоит задача поиска обратной функции для заданной функции двух переменных: Требуется найти зависимость концентрации от температуры и давления тогда как известна зависимость температуры от давления и концентрации...
Реальная функция значительно сложнее, чем представленная в примере. Более того реальная функция реализована как UDF в чужом запароленном модуле (надстройке) - к ней у меня есть только пользовательский доступ.

Для этой цели я определяю область значений функции для каждой из переменных и руками подбираю результат до тех пор пока вычисление известной функции не становится близким к текущему значению переменной.
Например: для давления = 3 функция концентрации определена в диапазоне температур от 24 до 36.
Тогда я ручным перебором нахожу такое значение концентрации (10,4%), при котором вычисленное по прямой формуле значение температуры (23,98) становится достаточно близким к текущему значению температуры (24).
Затем я перехожу к следующей температуре (26) при том же давлении (3) и повторяю операцию перебора до нахождения концентрации (29,3%)
Правильный результат подсвечивается зеленым цветом ячейки при помощи УФ.

К сожалению, мне не удалось спрятать все прямые вычисления внутрь УФ (видимо из-за особенностей реализации чужой UDF) - поэтому потребовалась дополнительная таблица ниже.

Подскажите, пожалуйста, как можно автоматизировать (очевидно при помощи VBA) процесс перебора значений (от 0% до 100%) для всех ячеек заданного диапазона, содержащих числовые значения (или пустых)? Критерием окончания перебора в текущей ячейке является смена цвета ячейки на зеленый или просто выполнение условия из УФ.

Как можно понять, в моем оригинальном файле содержится гораздо больше ячеек - мне бы очень хотелось избежать нудной ручной работы...

Заранее благодарен,
Илья
Ссылка на смежный диапазон внутри массива констант
 
Уважаемые коллеги,

Для выполнения моих вычислений (пример в колонке E) вместо прямой ссылки на ячейки я хочу использовать массив констант вида ={"Петя";1;2;3:"Вася";-10;-20;-30:"Маша";0;1;1}
До тех пор пока он содержит только числовые значения мне удается более-менее успешно получать из него нужные результаты (колонка F).
Однако, в том случае, если я включаю в массив констант текстовые значения моя формула сильно усложняется. И главное, что для меня неприемлемо: появляется необходимость несколько раз указывать в формуле свои переменные (числа из столбца D и имена из строки 11) - смотрите пример в столбце G.
Пока мне приходит в голову только использование функции СМЕЩ() - см. столбец H - к сожалению мне не удалось заставить ее работать с массивом констант.
Либо использование формулы массива (см. столбец I) - чего также хотелось бы избежать...

Могли бы вы предложить альтернативное решение, не требующее многократного обращения к одним и тем же переменным внутри формулы?

Заранее благодарен!

P.S. Если кто-нибудь знает как научить MS Excel получать единицу при возведении нуля в нулевую степень без обработки ошибок - пожалуйста, дайте знать :)
Порядок выполнения арифметических операций, Неужели отрицание имеет приоритет над возведением в степень?
 
Коллеги,

Неожиданно столкнулся с различием в собственном понимании приоритетов арифметических действий и понимания MS Excel... :)

Я всегда предполагал, что возведение в степень имеет приоритет над простыми арифметическими операциями (в том числе над отрицанием) - более того, в справке MS Excel находится тому явное подтверждение.
Поэтому я ожидал, что выражение вида
Код
=-1^СТРОКА()
не должно менять свой знак: сначала единица возводится в степень, а потом выполняется инверсия знака результата вычислений.

Каково же было мое изумление, когда я обнаружил чередование знаков результатов вычисления как будто бы в степень возводится именно число -1.

Сталкивался ли кто-нибудь с подобными странностями или по-вашему в этом нет ничего странного?
Направление вектора. Определение расстояния и направления от одной точки до других, упростить формулу
 
Уважаемые коллеги,

Для цели определения расстояния и направления от одной точки (начала отсчета) до других точек (точки заданы координатами на сфере и радиусом Земли) я использую формулы - они приведены в приложенном файле.
Если к формуле расчета длины вектора (она честно утащена отсюда) у меня нет претензий, то формулу учета направления (север - юг - запад - восток  ИЛИ циферблат часов) я придумывал сам. И мне кажется, что ее можно значительно упростить - нет ли у Вас плодотворных идей на эту тему?

С уважением,
Илья
Изменено: IKor - 26 окт 2018 14:39:26 (отредактировал формулу)
Определение минимума и максимума функции с переменным количеством аргументов, аналог задачи о рюкзаке
 
Уважаемые коллеги,

Прошу помощи в оптимизации решения задачи: о поиске компонентного состава газа с минимальной и максимальной молярными массами при заданных пользователям ограничениях по содержанию каждого из компонентов:
* В таблице указан перечень возможных компонентов и значения их молярных масс (весовые коэффициенты оптимизационной задачи) - см. столбцы A и B - к сожалению, по условию задачи сам перечень компонентов сортировать нельзя...
* пользователь задает ограничения для минимального и максимального значения для каждого из компонентов (в столбцах J и K соответственно) - если обе ячейки в строке остаются незаполненными, то компонент игнорируется; если заполнена хотя бы одна из ячеек, то в расчет принимается указанное значение, либо значение по умолчанию (0% или 100% соответственно для МИН и МАКС)
* требуется подобрать такое сочетание долей каждого из компонентов, чтобы молярная масса смеси принимала минимальное и максимальное значения (речь идет о сумме произведений доли каждого из компонентов и его известной молярной массы)

Я решил задачу с использованием дополнительной таблицы, отсортированной по увеличению молярной массы компонентов (в столбцах N:S); но мне кажется, что даже при помощи формул можно найти более элегантное решение. Прав ли я?
Диспетчер имен. Относительная ссылка без привязки к активному листу
 
Уважаемые коллеги,

В диспетчере имен можно создать зависимость, одновременно привязанную абсолютными ссылками к неактивным листу(-ам) и относительными ссылками на к активному листу
Пожалуйста, посмотрите прилагаемый файл:
* На первом листе я задаю коэффициенты линейной зависимости
* а на втором листе использую формулу (свернутую при помощи диспетчера имен), вычисляющую свое значение в зависимости от указанного рядом (в ячейке слева от формулы) значения аргумента функции.

Подскажите, пожалуйста, можно ли создать именованную_формулу с относительными ссылками без жесткой привязки к активному листу?
В рамках примера - для использования той же формулы не только на втором, но и на третьем листе.

В тоже время, если не использовать диспетчер имен, то относительные ссылки прекрасно копируются и правильно интерпретируются на любом листе...
Экспорт коэффициентов уравнения линии тренда в ячейки листа
 
Уважаемые коллеги,

Довольно часто мне приходится использовать вычисления, использующие экстраполяцию значений функции, заданной по нескольким точкам.
Для этой цели я обычно использую встроенные инструменты MS Excel, а именно уравнение линии тренда - такой точности вычислений достаточно для моих расчетов.
Но пока мне приходится вручную переписывать коэффициенты уравнения в ячейки листа, а хотелось бы каким-нибудь способом автоматизировать процесс.

Есть ли у кого-то идеи как это можно сделать?

Заранее благодарен,
Илья
Определение разделителя целой и дробной части числа на машине пользователя
 
Здравствуйте коллеги!

по причине долговременной болезни форума на сайте msexcel.ru я собрался задать свой вопрос здесь:

для решения одной из своих задач я столкнулся с необходимостью определения разделителя целой и дробной части числа на машине другого пользователя моего документа: у меня используется запятая, а зачатую у других пользователей встречается точка.
для себя я решил проблему при помощи имени, ссылающегося на формулу =ПСТР(1/2;2;1), которое возвращает запятую или точку в зависимости от настроек пользователя... Но может быть есть более правильный путь (без использования VBA)?

На форуме я нашел обсуждение этой проблемы здесь.  
Страницы: 1
Наверх