Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
[ Закрыто] Опять про картинки, Вставка картинок по значению соседней ячейки
 
Привет, народ,

Гуглил, гуглил здесь... Ничего похожего не нашёл, буду признателен, если надоумите.

ТЗ:
  1. Есть столбец А, где стоят по порядку числа от 1 до 50
  2. Есть столбец B, в котором рандомно генерится массив случайных случайных чисел (в формате текст - 001, 090 и так далее) в диапазоне (скажем от 1 до 115). Числа в массиве не дублируются. Количество генерируемых чисел строго соответствует количеству строк в столбце А - другими словами, размер массива - 50 случайных чисел
  3. В папке лежит массив картинок, пронумерованных сообразно параметрам случайных чисел (001 ... 115).png. все картинки строго одного размера
  4. Очевидно, что при очередной итерации, числа в столбце В меняются
  5. Сообразно этому, в столбец C нужно подтягивать картинки с соответствующими номерами. А при изменении номеров в столбце B, менять и картинки
  6. Хорошо бы получить подсказку, как написать сие чудо в режиме приватной функции на VBA (не макрос), Скажем что-то вроде - =GetPicture(B5)
За ранее кланяюсь в ноги всем знатокам VBA!
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
С.М.,
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
Цитата
С.М. написал:
Возвращаю файл (с вопросом):
Т.е. ниже   Вы пытаетесь определить плотность опять при тех же 27.3°С, 2.45 МПа, и   измеренной плотности 836,15 кг/м3 ???
В файле, то что вы VBA проделываете с помощью цикла, я просто разложил на листе - для большей наглядности. Так лучше видно - на какой итерации какие результаты выходят. Собственно, debug.print в консоль (в вашей функции) приносит ровно те же результаты. То, что я пытался делать - привести плотность при 27,3°С в плотность при 15°С, при том же P (т.е. 2,45 МПа) для пересчёта в другое значение P - там есть свои формулы. При этом чётко следовал, рекомендациям, о том, что дескать нужные значения просто подставить в ту же формулу (1). То, что вычислять нужно на перевёрнутой формуле - ребята забыли упомянуть (равно как и привести её). Ну что ж, бывает...

Ещё раз, всем спасибо за посильное участие и помощь.
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
Цитата
С.М. написал:
но забыли упомянуть, что ρ15, в этом случае определяется по "обратной" формуле:
Я ничего не забыл. В стандарте об этом ни слова. К слову, я там выше привёл формулу, по которой оно сработало. Как и ваша.
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
Нас нае... обманули. Расходимся. Оказывается (!!!) для того чтобы формула из стандарта, вот эта:


Работала правильно для приведения PtP в P15, её всего лишь (!!!) нужно перевернуть. Вот так:


И тогда всё внезапно начинает правильно работать. То, что в ГОСТе забыли об этом написать, ну так то мелочи. Нет слов.


Всем спасибо за посильный вклад!

P.S. Это мне народ на метрологическом форуме подсказал. Для них это - нечто само собой разумеющееся.
P.P.S. ...Как и здесь для отдельных людей - другие вещи.

Изменено: Святослав И - 01.11.2017 22:48:23
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
С.М., см. лист "Анализ" - референсные данные из примера и рядом то, что выдают формулы.
Изменено: Святослав И - 30.10.2017 09:00:56
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
С.М., А можно в двух словах буквально? Но в любом случае - спасибо. Опробую, отпишусь.
Изменено: Святослав И - 29.10.2017 23:03:53
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
Цитата
panix1111 написал:
14.645 - просто ручками подобранный кофициэнт
На других вводных, значения этого "коэффициента" будут другими. Что делает такое решение не вполне жизнеспособным...КМК... ))
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
panix1111, так я ровно о том же самом написал в #7-ом сообщении. Фишка в том, что мы как раз вычисляем именно р15, а не РtP... В алгоритме подстановок вроде об этом явно написано, или я как-то не так его читаю?

Цитата
3) Значение P15, вычисленное в первом приближении, подставляют в формулы (2) и (3) и вычисляют во втором приближении значения B15 и Yt, соответственно
Хотя вот начиная с этого пункта возникает некоторая неопределённость. Но опять же. Начиная с самой первой подстановки полученных b15 и Yt (значения которых, кстати, вычисляются чётко по примеру) - формула возвращает неверное значение, т.е. уже на самом первом шаге.
Изменено: Святослав И - 29.10.2017 21:56:30
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
Цитата
panix1111 написал:
есть готовые таблицы для расчета, может их как-то приспособить?
Да, такой вариант, за неимением лучшего, я уже приспособил и что-то оно вычисляет. Но. Погрешности к сож., слишком велики. Велики на столько, что всю ценность вычислений сводят на "нет". Ну то есть, грубо говоря, на бензовозе в котором плещется 22-23 тонны солярки - литров 200 свободно "гуляет" туда/сюда только на этих знаках после запятой...  Соответственно, какие-то недоливы/сливы можно даже не пытаться ловить, соответственно - про какой-либо вменяемый учёт/контроль можно забывать... Просто я покурил форумы метрологов и там вполне чётко прослеживается мысль, что только вот эти формулы...
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
Цитата
panix1111 написал:
что то там не то с вычислениями
Угу, мягко говоря - не то... Настолько не то, что оно уходит в противоположном направлении. С другой стороны, вот ещё раз формула:


как вот её ещё можно понять иначе? У меня, грешным делом, была мысль, что скобки квадратные-фигурные каким-то образом могут влиять на очерёдность вычислений...
Изменено: Святослав И - 29.10.2017 20:07:13
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
Цитата
panix1111 написал: Пошаговый прогон показывает, что проблема в ф-ле Yt, так b15 выдает значение как и в ГОСТ-примере, а вот Yt = 8.1328 (должно быть 8,148)
В прицепленом файлике, на листе "Руками" - я простыми формулами посчитал - и там, в первом приближении - значение коэффициента Yt - в точности совпадает со значением из примера.

Цитата
panix1111 написал: Понял, чего точно не хватет - второй температуры, первая при которой меряли д ля расчета приближения, а вторая(для которой расчет и идет) должна использоваться на последующих шагах
Хм... Так вроде в алгоритме указано использовать именно замеренную температуру то есть PtP... Пошёл читать в сто первый раз алгоритм...

Вот же:
Цитата
Примечания    
При определении значения плотности p15, в формулы (1) и (3) подставляют значения температуры и давления нефти или нефтепродукта, при которых была измерена плотность PtP
НО
При расчете значения плотности PtP в формулы (1) и (3) подставляют значения температуры и давления нефти, при которых требуется определить плотность.
В рассматриваемом примере мы выводим именно p15

Цитата
Hypohelix написал: У меня возникло такое ощущение, что в стандарте где-то что-то пропущено. У меня в результате вычислений получаются те же цифры, что и у Вас. При этом, более-менее близкие к примеру цифры получаются только при убирании знака минус в формуле 1 у коэффициента Б15.  
Угу.... тоже игрался с этими минусами... И потом - вряд ли в госте напортачили... Я сверялся с предыдущими гостами - там практически те же самые формулы используются...
Изменено: Святослав И - 29.10.2017 17:25:11
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
Цитата
panix1111 написал:
стоп, там еще есть ошибки. плюс не учтены все коэфициенты в Юзерфкнкции
Да вроде всё учёл.... всего-то три уравнения задействованы... что до ошибок - разумеется они есть ) если бы их не было и вопрос бы не стоял ))
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
Цитата
panix1111 написал:
округляете же сами, типы переменных для такой точности надо указывать
Проблема не в округлениях. Там точность в худшем случае пострадает. Проблема в том, что он в принципе неверно считает.

Грубо говоря, при пересчёте из более высокой температуры в более низкую - плотность должна возрастать (что, как минимум, логично), а она - уменьшается. Другими словами: если при температуре +27, плотность солярки 840, то при +15 она должна быть +845, а не - 835.

Если взять конкретный пример и первого поста: там при t=27,3 плотность = 836,15
в результате первого приближения, при приведении к t=15 - формула должна выдать - 843,62, а она выдаёт - 827.31.... в чём собственно и состоит затык...
Изменено: Святослав И - 29.10.2017 13:47:52 (уточнение ответа)
Расчёт плотности нефтепродуктов, по стандарту ГОСТ Р 50.2.076-2010
 
Здравствуйте,

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

Итак, есть стандарт. В нём приведены чёткие уравнения и алгоритмы расчёта плотности нефтепродуктов, в зависимости от температуры/давления. Вот примерная схема расчётов:
Скрытый текст

С этим вроде как всё ясно и понятно. Изначальная задача:  вывести р15 из замеров топлива, находящегося в произвольном состоянии. На основании вышепривёдённых данных, родился следующий текст в VBA:
Код
Function P_to_15(dens, temp, Optional p)
k0 = 613.9723
k1 = 0
k2 = 0
If IsMissing(p) = True Then
    p = 0
End If

old_dens = 0
new_dens = dens

Do Until Abs(new_dens - old_dens) = 0
    b15 = ((k0 + k1 * new_dens) / new_dens ^ 2) + k2
    Yt = 10 ^ -3 * Exp(-1.6208 + 0.00021592 * temp + ((0.87096 * 10 ^ 6) / new_dens ^ 2) + ((4.2092 * temp * 10 ^ 3) / new_dens ^ 2))
    old_dens = new_dens
    new_dens = (dens * Exp(-b15 * (temp - 15) * (1 + 0.8 * b15 * (temp - 15)))) / (1 - Yt * p)
Loop
P_to_15 = Application.Round(new_dens, 2)
End Function
И вроде бы всё хорошо. Но, не всё хорошо. Считает не правильно. В том же стандарте приводится пример для расчёта. Следуя которому - мною написанное даёт иные результаты. Вот пример:
Скрытый текст

Прицепил файлик, в котором играюсь. Буду крайне признателен, если ткнёте носом в ошибку!
Изменено: Святослав И - 29.10.2017 15:45:14
Фильтр данных из массива с помощью второго массива
 
Цитата
Сергей написал:
еще раз ни чего там не пропущено, смотрим
Ваша правда... Видимо, я пока "переводил" вашу формулу с русского на английский, что-то упустил...

Премного благодарен за помощь!

Цитата
Сергей написал:
Можно и автоматически, но не было заявлено ))

Вот так всегда с этими ТЗ :)

В любом случае, благодарю за посильную помощь!
Изменено: Святослав И - 11.04.2016 19:31:26
Фильтр данных из массива с помощью второго массива
 
Цитата
Сергей написал:
Формула массива вводится комбинацией тре клавиш ни чего в нее добавлять не надо
Я в курсе, спасибо. Я просто упомянул что в вашей формуле была пропущена одна функция ;)

Цитата
Юрий М написал:
Переписывайте ))
Спасибо, посмотрю!

P.S. Блин... VBA это конечно круто... Но в нём я совсем не того (( К тому же - оно должно автоматически считаться, а не по нажатию кнопки, пусть даже волшебной
P.P.S. Но за код работы с массивами - отдельное спасибо... Попробую его приспособить к другим задачам :)
Изменено: Святослав И - 11.04.2016 17:13:47
Фильтр данных из массива с помощью второго массива
 
Цитата
Юрий М написал:
А массив у Вас растёт в ширину? Не по строкам?
В ширину, да... Но это не принципиально, кмк... переписать одно на другое - две секунды...
Фильтр данных из массива с помощью второго массива
 
А в приведённой формуле СУММПРОИЗВ не пропущен? Без него не работает вовсе, с ним таблица заполняется вот так:
Вася #NUM! Маша #NUM! Катя
Именно так задумано?

 
Изменено: Святослав И - 11.04.2016 16:32:36
Фильтр данных из массива с помощью второго массива
 
Здорово...  А можно, интересно, придумать, вариант без заполнения дополнительных ячеек? Каким-то образом объединить формулы массива из B:F и N:R.

Но направление мысли понятно... попробую поковырять...
Фильтр данных из массива с помощью второго массива
 
Коллеги, нужна помощь,

Вторые сутки пытаюсь решить задачку, и мозг уже кипит. Возможно всемогущий коллективный разум сталкивался или просто знает как решить

Есть два массива, которые описаны как динамические именованные диапазоны (DNR).

Массив №1 содержит исходные данные (массив - произвольной длины),
Массив №2 содержит данные, которые необходимо удалить из первого массива и на основании полученных вычислений заполнить третий массив
Массив №3 содержит отфильтрованные данные из первого массива

Данные первого и второго массива совсем не обязательно должны совпадать. Может оказаться, что не окажется совпадающих имён, в этом случае - данные из первого массива целиком переносятся в третий массив.

Прилагаю картинку для наглядности и непосредственно файл с примером

Изменено: Святослав И - 11.04.2016 15:26:59
Замена "ёлочки" в расчётах: сколько каких ТО будет проведено с учётом динамики продаж
 
Насколько я понимаю, оба предложенных варианта - разного рода попытки автоматизации всё той же ёлочки. Получается не просто ёлочка, а продвинутая ёлочка  ;)  Изначальный запрос был - а можно ли это как-то записать одним уравнением/формулой?

При чём класс задач - достаточно обширный. Частный случай (и самый простой из них) - график амортизации основных средств - вроде как решается... и даже несколькими способами. Одно решение я уже приводил выше. Вот еще ссылочка на буржуйский сайт - Приводится достаточно изящное решение с помощью СУММПРОИЗВ.

Другие возможные варианты задач - сдача в аренду/прокат любой техники с учётом имеющихся ресурсов, с учётом изменяющейся во времени суммы проката и так далее... С помощью ёлочек всё решается... Как это сделать без рисования эпичных полотен из десятков ёлочек - пока не представляю...
Изменено: Святослав И - 29.05.2014 22:41:39
Замена "ёлочки" в расчётах: сколько каких ТО будет проведено с учётом динамики продаж
 
Друзья,
Я правильно понимаю, что моя задача не имеет решения в рамках возможностей excel (БЕЗ влезания в VBA)?
Замена "ёлочки" в расчётах: сколько каких ТО будет проведено с учётом динамики продаж
 
Смысл следующий:
Если я продал комплекс в 1-ом календарном квартале года, напр, в начале января, то большое ТО - произойдёт в 4-ом календарном квартале того же года - напр в декабре.

По аналогии - продажа 4-м календарном квартале года - может состояться и 1-го октября (начало 4-го квартала). Соотв. - ТО состоится в 7-ом (3-ем календарном) квартале, в следующем году - например - 30-го сентября следующего года.

Если же сдвигать паттерны так, как вы, по всей видимости, хотели бы предложить (см. файл), то, внезапно, возникает пара проблем - возникает 13-ый квартал, в котором я должен произвести последнее большое ТО, и как следствие, данное ТО может уехать за пределы гарантийного срока в 36 месяцев, или 12 кварталов. А это уже проблема.

Варианты?
Изменено: Святослав И - 28.05.2014 10:14:09
Замена "ёлочки" в расчётах: сколько каких ТО будет проведено с учётом динамики продаж
 
Возможно я не до конца уловил вашу мысль, но каким образом мне допилить уравнение
Код
=СУММ(ИНДЕКС($B$7:B7;МАКС(СТОЛБЕЦ(A1)-10;1)):B7)
чтобы из полученной цифры вычленить количество малых и количество больших ТО?
Возьмём для примера столбец Q. Формула выдаёт мне значение 77. Что нужно предпринять, чтобы на выходе получить, что в этот конкретный период времени - 53 малых ТО и 24 больших?

Прошу прощения, возможно решение лежит у меня под самым носом... Но не вижу вот  :(
Замена "ёлочки" в расчётах: сколько каких ТО будет проведено с учётом динамики продаж
 
Пардон, тупанул... Почему-то показалось, что оно с "ёлочкой" взаимодействует... Mea culpa...
Теперь осталось только придумать, как разделить на малое и большое ТО... (
В конкретном случае это важно, потому что там разная стоимость, разные трудо-затраты на эти ТО. Соотв., они по-разному учитываются...
Изменено: Святослав И - 27.05.2014 21:21:27
Замена "ёлочки" в расчётах: сколько каких ТО будет проведено с учётом динамики продаж
 
Ну, я думаю, это решается обычной:
Код
=СУММ(C8:C47) 
и протянуть...
Изменено: Святослав И - 27.05.2014 20:36:21
Замена "ёлочки" в расчётах: сколько каких ТО будет проведено с учётом динамики продаж
 
Цитата
Jack пишет: =СУММЕСЛИ($B$8:$B$47;$B50;C$8:C$47)
Да, это хорошее замечание. Но, сверхзадача - избавиться от ёлочки  :(

При чём это только один пример. Там их потом будет...эээ... много... Каждый раз рисовать ёлочки - замучишься пыль глотать. Наверняка что-то такое уже кем-то придумано...
Замена "ёлочки" в расчётах: сколько каких ТО будет проведено с учётом динамики продаж
 
Это не совсем то... Вопрос не в том, чтобы автоматизировать нахождение в паттерне. В паттерне там, фактически классический TRUE/FALSE - в этом периоде проводим ТО или не проводим. В первый квартал после продажи не проводим вовсе никакого, в дальнейшем, если проводим большое ТО, то не проводим малого и так далее. Можно и упростить схему. выставить разные флажки и по ним уже определять, какое ТО проводим.

короткий пример, демонстириующий идею:
1кв. Продан 1 комлекс, никаких ТО не происходит.
2кв. Проданы 2 комплекса., происходит 1 ТО для комплекса проданного в первом квартале
3кв. Ничего не продано, но происходит 3 ТО - одно для комплекса проданного в 1кв. и два для комплексов проданных во 2кв.
И так далее...

Вопрос в том, как это посчитать в одной строке, некоей хитрой формулой. Спокойно можно одну формулу для малого ТО, вторую для большого. Когда будет понятна идея - экстраполировать ее на другие примеры - дело техники.
Где-то в соседней теме стояла задача аналогичным образом избавиться от "ёлочки" при расчёте амортизации (см. файл) . В случае с амортизацией - задача более простая, потому что первоначальное число делится на равные части. Как применить ту же формулу для своего случая - мне не придумалось (( За сим уповаю на помощь "коллективного разума"  :)
Изменено: Святослав И - 27.05.2014 18:59:33
Замена "ёлочки" в расчётах: сколько каких ТО будет проведено с учётом динамики продаж
 
Добрый день,

Буду безмерно благодарен, если кто-то надоумит, как заменить классическую ёлочку в расчётах на что-то более вразумительное. Другими словами - посчитать всё то же самое, но в одной строке. Я видел здесь примеры для расчёта амортизации. К сожалению, пример с амортизацией в моём случае не работает. Я пробовал аналогичным образом применить все эти OFFSET, MIN, MAX функции. Но опыта в экселе маловато.  :(

В приводимом примере ситуация следующая. Каждый квартал происходит продажа неких технических комплексов, для которых ежеквартально необходимо проводить малое ТО. Раз в год - проводится большое ТО. Всего ТО проводятся три года с момента продажи. Необходимо рассчитать  - сколько каких ТО будет проведено с учётом динамики продаж.

Заранее благодарен за любые подсказки
Страницы: 1
Наверх