Доброго времени суток. В файле есть блок преобразований и расчётов для исходного столбца А. В ячейках В23, С23 и D23 выведен результат. Нужно все эти расчёты засунуть в одну формулу (одна для ячейки В23, одна для C23 и одна для D23), чтобы в итоге остались только исходный столбец и итог в ячейках В23, С23, D23 без добавления дополнительных столбцов с промежуточными расчётами. Решение "в лоб" не вмещается в ячейку (слишком длинная формула).
(Формулу или функцию далее предполагается растягивать и перемещать на листе данных)
---------------------------------------------------------------------------------------- Кратко о сути расчётов. Нужно сгладить ряд на всю длину ряда 2-я сглаживающими функциями (в данном случае это средние с 2-я разными периодами). Для того чтобы это сделать, не хватает данных на концах ряда. Для этого продолжаем концы исходного ряда принимая значения крайних точек ряда.
Находим функцию между получившимися сглаживающими линиями, нормализуем её на максимальное значение.
Далее повторяем то же самое для нового получившегося ряда.
Доброго времени суток. В файле есть блок преобразований и расчётов для исходного столбца А. В ячейках В23, С23 и D23 выведен результат. Нужно все эти расчёты засунуть в одну формулу (одна для ячейки В23, одна для C23 и одна для D23), чтобы в итоге остались только исходный столбец и итог в ячейках В23, С23, D23 без добавления дополнительных столбцов с промежуточными расчётами. Решение "в лоб" не вмещается в ячейку (слишком длинная формула).
(Формулу или функцию далее предполагается растягивать и перемещать на листе данных)
---------------------------------------------------------------------------------------- Кратко о сути расчётов. Нужно сгладить ряд на всю длину ряда 2-я сглаживающими функциями (в данном случае это средние с 2-я разными периодами). Для того чтобы это сделать, не хватает данных на концах ряда. Для этого продолжаем концы исходного ряда принимая значения крайних точек ряда.
Находим функцию между получившимися сглаживающими линиями, нормализуем её на максимальное значение.
Далее повторяем то же самое для нового получившегося ряда.Slave77
Здравствуйте. Пример не очень удачный, в нем не понятно ничего. Вспомогательные столбцы на разных уровнях, почему? По какой логике считаются средние значения и почему не понятно. В одном столбце среднее 22 значений, в другом 10 значений, почему? Может лучше объяснить словами что хотите получить в итоге, возможно тогда кто нибудь и предложит вариант без доп столбцов, а разбираться что в файле накручено и что от чего зависит проблемно. Попытался, у меня не получилось понять логику.
Здравствуйте. Пример не очень удачный, в нем не понятно ничего. Вспомогательные столбцы на разных уровнях, почему? По какой логике считаются средние значения и почему не понятно. В одном столбце среднее 22 значений, в другом 10 значений, почему? Может лучше объяснить словами что хотите получить в итоге, возможно тогда кто нибудь и предложит вариант без доп столбцов, а разбираться что в файле накручено и что от чего зависит проблемно. Попытался, у меня не получилось понять логику.gling
На разных уровнях они потому что хотел наглядно показать суть расчёта. Средние не 22 и 10, а 23 и 11. Вот смотрите. Есть ряд из 23 точек, среднее этого ряда есть 1 точка. А нам надо 23 такие точки. Для этого исходный ряд продолжаем на обоих концах, принимая значения соответствующих конечных точек ряда (так вспомогательные столбцы стали на разных уровнях, можно и на одном сделать, тогда столбец а сместится ниже, если нужно могу переделать пример, только скажите). То же самое делаем и для среднего из 11 точек. Далее находим разницу между этими двумя средними линиями. Нормализуем её на максимальное значение между этими линиями и повторяем процесс.
На разных уровнях они потому что хотел наглядно показать суть расчёта. Средние не 22 и 10, а 23 и 11. Вот смотрите. Есть ряд из 23 точек, среднее этого ряда есть 1 точка. А нам надо 23 такие точки. Для этого исходный ряд продолжаем на обоих концах, принимая значения соответствующих конечных точек ряда (так вспомогательные столбцы стали на разных уровнях, можно и на одном сделать, тогда столбец а сместится ниже, если нужно могу переделать пример, только скажите). То же самое делаем и для среднего из 11 точек. Далее находим разницу между этими двумя средними линиями. Нормализуем её на максимальное значение между этими линиями и повторяем процесс.Slave77
Сообщение отредактировал Slave77 - Суббота, 16.06.2018, 02:10
Спасибо большое, буду разбираться. Примерно понимал что как-то через формулы массива можно, но в них я не смыслю. А простыми формулами упёрся в предел длины формулы, с ростом ряда. Ещё раз спасибо!
Спасибо большое, буду разбираться. Примерно понимал что как-то через формулы массива можно, но в них я не смыслю. А простыми формулами упёрся в предел длины формулы, с ростом ряда. Ещё раз спасибо!Slave77
Весь день крутил вертел формулы. Думал методом тыка соображу какакая переменная за что отвечает, меняя значения. Вручную сделал таблицу по склейке формул, чтобы можно было вбивать значения переменных, меняя условия. Но так и не сообразил как правильно нужно их менять.
У нас есть всего 3 условия, 1-параметр-длина ряда (в примере последнем это 5) . 2-параметр-параметр первого усреднения (в примере последнем это тоже 5). 3-параметр-параметр второго усреднения (в примере последнем это 3). Меняя эти условия, нужно менять соответствующие переменные в формуле.
В итоге ясно что параметры 1:3, 1:5, 3, 5, соответствуют средним значениям 3 и 5. Тут понятно. Диапазоны B:D и A:E, я так понимаю вообще не требуют никаких дополнений и знака доллара, не зависимо от того нужно ли растягивать формулу или нет.
Непонятны остались константы 6, 8, 10, 2, 4. Вернее я их менял произвольно, примерно предполагая что откуда произрастает, смотрел, пробовал. Но почему-то в итоге ни одна формула у меня не сошлась на другом примере. Не правильно понял скорее всего параметры СТРОКА(1:9), и константы.
Вот Вы говорите- "В формулах надо заменить СТРОКА(1:9) на СТРОКА($1:$9) и тогда ошибку при протягивании выдавать не будет." Но у нас ведь есть ещё СТРОКА(1:3) и СТРОКА(1:5). Их разве не нужно тоже менять на СТРОКА($1:$9) и СТРОКА($1:$5)? Или предполагается что они работают уже внутри заданного диапазона $1:$9, и нет смысла ставить доллар перед ними, если уже есть в СТРОКА($1:$9). ------------------------------------------------------------------------------------------------
Всё же очень хочется увидет как будут выглядеть переменные в формулах для
1-вариант если длина ряда будет равна например 11 , первое усреднение 7, второе 3. 2-Вариант если длина ряда будет равна 11, первое усреднение будет 11, второе 5. 3-В примере решения для вашего вариантадлина ряда была 11 , первое усреднение 7, второе 3. Чтобы увидеть как это работает.
Вот мой вариант ответа, не рабочий. (про то что это формулы массива-не забывал)
1. СТРОКА($1:$13),СТРОКА(1:7), СТРОКА(1:3),B:D ,A:E,C11, и константы:7, 3, 8, 14, 3, 12, 6. 2. СТРОКА($1:$21),СТРОКА(1:11), СТРОКА(1:5),B:D ,A:E,C11,и константы:11, 5,12, 22, 5, 20, 10. 3. Для сравнения ваше решение из примера: __СТРОКА($1:$9), СТРОКА(1:5), СТРОКА(1:3),B:D ,A:E, C5, и константы: 5, 3, 6, 10, 2, 8, 4.
Весь день крутил вертел формулы. Думал методом тыка соображу какакая переменная за что отвечает, меняя значения. Вручную сделал таблицу по склейке формул, чтобы можно было вбивать значения переменных, меняя условия. Но так и не сообразил как правильно нужно их менять.
У нас есть всего 3 условия, 1-параметр-длина ряда (в примере последнем это 5) . 2-параметр-параметр первого усреднения (в примере последнем это тоже 5). 3-параметр-параметр второго усреднения (в примере последнем это 3). Меняя эти условия, нужно менять соответствующие переменные в формуле.
В итоге ясно что параметры 1:3, 1:5, 3, 5, соответствуют средним значениям 3 и 5. Тут понятно. Диапазоны B:D и A:E, я так понимаю вообще не требуют никаких дополнений и знака доллара, не зависимо от того нужно ли растягивать формулу или нет.
Непонятны остались константы 6, 8, 10, 2, 4. Вернее я их менял произвольно, примерно предполагая что откуда произрастает, смотрел, пробовал. Но почему-то в итоге ни одна формула у меня не сошлась на другом примере. Не правильно понял скорее всего параметры СТРОКА(1:9), и константы.
Вот Вы говорите- "В формулах надо заменить СТРОКА(1:9) на СТРОКА($1:$9) и тогда ошибку при протягивании выдавать не будет." Но у нас ведь есть ещё СТРОКА(1:3) и СТРОКА(1:5). Их разве не нужно тоже менять на СТРОКА($1:$9) и СТРОКА($1:$5)? Или предполагается что они работают уже внутри заданного диапазона $1:$9, и нет смысла ставить доллар перед ними, если уже есть в СТРОКА($1:$9). ------------------------------------------------------------------------------------------------
Всё же очень хочется увидет как будут выглядеть переменные в формулах для
1-вариант если длина ряда будет равна например 11 , первое усреднение 7, второе 3. 2-Вариант если длина ряда будет равна 11, первое усреднение будет 11, второе 5. 3-В примере решения для вашего вариантадлина ряда была 11 , первое усреднение 7, второе 3. Чтобы увидеть как это работает.
Вот мой вариант ответа, не рабочий. (про то что это формулы массива-не забывал)
1. СТРОКА($1:$13),СТРОКА(1:7), СТРОКА(1:3),B:D ,A:E,C11, и константы:7, 3, 8, 14, 3, 12, 6. 2. СТРОКА($1:$21),СТРОКА(1:11), СТРОКА(1:5),B:D ,A:E,C11,и константы:11, 5,12, 22, 5, 20, 10. 3. Для сравнения ваше решение из примера: __СТРОКА($1:$9), СТРОКА(1:5), СТРОКА(1:3),B:D ,A:E, C5, и константы: 5, 3, 6, 10, 2, 8, 4.Slave77
Сообщение отредактировал Slave77 - Вторник, 19.06.2018, 07:19
Все диапазоны и константы сводятся к тому, чтобы построить матрицы и векторы 00000 000 10000 00000 0 0 00001 000 11000 10000 0 1 00012 001 11100 11000 1 1 00123 012 11110 11100 1 1 01234 123 11111 01110 1 0 12344 234 01111 00111 1 23444 344 00111 00011 1 34444 444 00011 00001 0 44444 444 00001 00000 0 СТРОКА($1:$9) задаёт количество строк в матрице. Это длина ряда. СТОЛБЕЦ(A:E) строит первую матрицу, СТОЛБЕЦ(B:D) - вторую. Это первое и второе усреднения (5 и 3). Протягивание только вертикальное, поэтому $ не нужен. СТРОКА(1:3)^0 = {1:1:1} и СТРОКА(1:5)^0 = {1:1:1:1:1} независимо от 1:3 или 2:4 или ... $ тоже не нужен. Другие константы задают с какой и по какую строки будет 1 в третьей и четвёртой матрицах. Вектора отсекают крайние значения в массиве для суммирования. Можно было бы сделать универсальную формулу с параметрами: длина, первое и второе усреднения, но получится ещё более монстрообразная формула.
Все диапазоны и константы сводятся к тому, чтобы построить матрицы и векторы 00000 000 10000 00000 0 0 00001 000 11000 10000 0 1 00012 001 11100 11000 1 1 00123 012 11110 11100 1 1 01234 123 11111 01110 1 0 12344 234 01111 00111 1 23444 344 00111 00011 1 34444 444 00011 00001 0 44444 444 00001 00000 0 СТРОКА($1:$9) задаёт количество строк в матрице. Это длина ряда. СТОЛБЕЦ(A:E) строит первую матрицу, СТОЛБЕЦ(B:D) - вторую. Это первое и второе усреднения (5 и 3). Протягивание только вертикальное, поэтому $ не нужен. СТРОКА(1:3)^0 = {1:1:1} и СТРОКА(1:5)^0 = {1:1:1:1:1} независимо от 1:3 или 2:4 или ... $ тоже не нужен. Другие константы задают с какой и по какую строки будет 1 в третьей и четвёртой матрицах. Вектора отсекают крайние значения в массиве для суммирования. Можно было бы сделать универсальную формулу с параметрами: длина, первое и второе усреднения, но получится ещё более монстрообразная формула.Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Вторник, 19.06.2018, 08:55
Можно было бы сделать универсальную формулу с параметрами: длина, первое и второе усреднения, но получится ещё более монстрообразная формула.
Да это это не страшно (большая формула), главное чтобы влазила в ограничение по длине формулы. Я её в итоге руками разбил на части как текст, выделив отдельно то, что в ней нужно будет менять. А потом склеил макросом (тут на форуме есть). В итоге выделил ряд переменных которые можно задавать, а таблица сама подставляет их везде где нужно в формуле. На выходе текстовый вариант формулы получается, копирую как текст и вставляю куда надо, добавляя равно и контрл шифт. Вот только в переменных запутался. Было бы супер если бы число параметров свелось в итоге к трём.
ЗЫ. В следующем семестре будет курсовая в ней нужно будет приводить анализ кучи статистических выкладок. Хотелось бы заранее хоть немного автоматизировать некоторые процессы, пока лето, потому что делается всё как обычно по старинке. Проходили лабораторные, там уже утомило ручное сопоставление анализируемых данных. А в курсовой их ещё больше. Очень не хочется и там делать то же самое.
СТОЛБЕЦ(A:E) строит первую матрицу, СТОЛБЕЦ(B:D) - вторую. Это первое и второе усреднения (5 и 3). Протягивание только вертикальное, поэтому $ не нужен.
Растягиваю я конечно вниз, но и по горизонтали на листе предполагается копировать и вставлять расчёты. Так что наверное всё же необходимо будет ставить знак доллара в СТОЛБЕЦ(A$:E$) и СТОЛБЕЦ(B$:D$) ?
Можно было бы сделать универсальную формулу с параметрами: длина, первое и второе усреднения, но получится ещё более монстрообразная формула.
Да это это не страшно (большая формула), главное чтобы влазила в ограничение по длине формулы. Я её в итоге руками разбил на части как текст, выделив отдельно то, что в ней нужно будет менять. А потом склеил макросом (тут на форуме есть). В итоге выделил ряд переменных которые можно задавать, а таблица сама подставляет их везде где нужно в формуле. На выходе текстовый вариант формулы получается, копирую как текст и вставляю куда надо, добавляя равно и контрл шифт. Вот только в переменных запутался. Было бы супер если бы число параметров свелось в итоге к трём.
ЗЫ. В следующем семестре будет курсовая в ней нужно будет приводить анализ кучи статистических выкладок. Хотелось бы заранее хоть немного автоматизировать некоторые процессы, пока лето, потому что делается всё как обычно по старинке. Проходили лабораторные, там уже утомило ручное сопоставление анализируемых данных. А в курсовой их ещё больше. Очень не хочется и там делать то же самое.
СТОЛБЕЦ(A:E) строит первую матрицу, СТОЛБЕЦ(B:D) - вторую. Это первое и второе усреднения (5 и 3). Протягивание только вертикальное, поэтому $ не нужен.
Растягиваю я конечно вниз, но и по горизонтали на листе предполагается копировать и вставлять расчёты. Так что наверное всё же необходимо будет ставить знак доллара в СТОЛБЕЦ(A$:E$) и СТОЛБЕЦ(B$:D$) ?Slave77
Сообщение отредактировал Slave77 - Вторник, 19.06.2018, 09:18
Что именно я не захотел и продолжил не хотеть? Ссылку вставил самостоятельно на эту тему, после того как человек помог мне тут. Без замечаний, самостоятельно. Впрочем, умолкаю, стало понятно, что если пытаться высказать свою точку зрения-сделают ещё более виноватым. Как сделали (не спорю) тамошние размышления в ответ на сторонние мысли.
_Boroda_. "Ссылку оставлять не можно, а нужно. И нужно это делать в самом начале разговора" Тут, да, не вставил. Но и редактировать первые посты я ведь не могу уже. Что естественно не освобождает от ответственности. По крайней мере старался быть честным в своих высказываниях. Но что поделать, поздно уже. Теперь, видимо, только ленивый не пнёт, проходя мимо.
Что именно я не захотел и продолжил не хотеть? Ссылку вставил самостоятельно на эту тему, после того как человек помог мне тут. Без замечаний, самостоятельно. Впрочем, умолкаю, стало понятно, что если пытаться высказать свою точку зрения-сделают ещё более виноватым. Как сделали (не спорю) тамошние размышления в ответ на сторонние мысли.
_Boroda_. "Ссылку оставлять не можно, а нужно. И нужно это делать в самом начале разговора" Тут, да, не вставил. Но и редактировать первые посты я ведь не могу уже. Что естественно не освобождает от ответственности. По крайней мере старался быть честным в своих высказываниях. Но что поделать, поздно уже. Теперь, видимо, только ленивый не пнёт, проходя мимо.Slave77
Сообщение отредактировал Slave77 - Вторник, 19.06.2018, 09:56
_Boroda_, Этот форум имеет к вашему форуму отношение или нет? Фиг поймёшь, где нужно помещать кроссы, а где нет. http://www.cyberforum.ru/vba/announcement3.html Перечитал правила там, "Запрещено публиковать ответы на вопросы или решения задач с форума на другие сайты и давать на них ссылки в качестве ответа." Прошу перечислить список форумов, которые связаны с вашим, и так понимаю планетой эксель. Где в обязательном порядке нужно помещать кроссы.
_Boroda_, Этот форум имеет к вашему форуму отношение или нет? Фиг поймёшь, где нужно помещать кроссы, а где нет. http://www.cyberforum.ru/vba/announcement3.html Перечитал правила там, "Запрещено публиковать ответы на вопросы или решения задач с форума на другие сайты и давать на них ссылки в качестве ответа." Прошу перечислить список форумов, которые связаны с вашим, и так понимаю планетой эксель. Где в обязательном порядке нужно помещать кроссы.Slave77
Сообщение отредактировал Slave77 - Среда, 20.06.2018, 14:52
Сделал универсальные формулы. Для упрощения ещё один столбец с максимумом вставил. Формулы получились в два раза короче. В зелёных ячейках (5,3) можно менять периоды. На листе Разработка остались промежуточные массивы и формулы, а также универсальный проверочный ряд формул. Для любых периодов.
Сделал универсальные формулы. Для упрощения ещё один столбец с максимумом вставил. Формулы получились в два раза короче. В зелёных ячейках (5,3) можно менять периоды. На листе Разработка остались промежуточные массивы и формулы, а также универсальный проверочный ряд формул. Для любых периодов.Светлый
Мдя, объясняли вам на Планете, объясняли, но вы, похоже, никого, кроме себя, слушать не хотите. Мне надоело воду в ступе толочь, читайте Правила форума, я буду особенно внимательно следить
Кстати, возникла мысль - а первый ли раз вы регистрируетесь на этом форуме? Уж больно больно стиль изложения мне кое-кого напоминает. Это риторический вопрос и он не для вас, вам отвечать не него не нужно
Мдя, объясняли вам на Планете, объясняли, но вы, похоже, никого, кроме себя, слушать не хотите. Мне надоело воду в ступе толочь, читайте Правила форума, я буду особенно внимательно следить
Кстати, возникла мысль - а первый ли раз вы регистрируетесь на этом форуме? Уж больно больно стиль изложения мне кое-кого напоминает. Это риторический вопрос и он не для вас, вам отвечать не него не нужно_Boroda_
Кстати, возникла мысль - а первый ли раз вы регистрируетесь на этом форуме? Уж больно больно стиль изложения мне кое-кого напоминает. Это риторический вопрос и он не для вас, вам отвечать не него не нужно
Как это справедливо и профессионально. Пользуясь положением, заочно обвинить кого-то в чём-то, а потом сказать что это риторический вопрос. Вы уж если говорите, то говорите открыто. А если вам не позволяют правила форума выдавать какую-то информацию личную, то и говорить об этом не стоит. А иначе это звучит как шантаж раскрытием личной информации про связь с другим аккаунтом, естественно Вы можете пробить ай пи, тем более у вас тесное общение со смотрителями других форумов, и неформально информация может быть получена и от них, что уже указывает на ещё более жесточайшее нарушение правил уже Вами. Но доказательств ведь у меня не будет, верно. Хоть я и понятия не имею о чём Вы, так как сеть публичная, и не один студент ею пользуется, но звучит это именно так. Это лишний раз подтверждает предвзятость. Впрочем, можете даже сообщить ответ на ваш риторический вопрос. Я даже жаловаться не буду на раскрытие чужой информации, мне скрывать нечего, я как старался быть честен в высказываниях, так и стараюсь. Отвечать на это тоже не обязательно (по желанию). Но и удалять из контекста переписки-не красиво.
Кстати, возникла мысль - а первый ли раз вы регистрируетесь на этом форуме? Уж больно больно стиль изложения мне кое-кого напоминает. Это риторический вопрос и он не для вас, вам отвечать не него не нужно
Как это справедливо и профессионально. Пользуясь положением, заочно обвинить кого-то в чём-то, а потом сказать что это риторический вопрос. Вы уж если говорите, то говорите открыто. А если вам не позволяют правила форума выдавать какую-то информацию личную, то и говорить об этом не стоит. А иначе это звучит как шантаж раскрытием личной информации про связь с другим аккаунтом, естественно Вы можете пробить ай пи, тем более у вас тесное общение со смотрителями других форумов, и неформально информация может быть получена и от них, что уже указывает на ещё более жесточайшее нарушение правил уже Вами. Но доказательств ведь у меня не будет, верно. Хоть я и понятия не имею о чём Вы, так как сеть публичная, и не один студент ею пользуется, но звучит это именно так. Это лишний раз подтверждает предвзятость. Впрочем, можете даже сообщить ответ на ваш риторический вопрос. Я даже жаловаться не буду на раскрытие чужой информации, мне скрывать нечего, я как старался быть честен в высказываниях, так и стараюсь. Отвечать на это тоже не обязательно (по желанию). Но и удалять из контекста переписки-не красиво.Slave77
Сообщение отредактировал Slave77 - Четверг, 21.06.2018, 06:32
Сделал универсальные формулы. Для упрощения ещё один столбец с максимумом вставил. Формулы получились в два раза короче. В зелёных ячейках (5,3) можно менять периоды. На листе Разработка остались промежуточные массивы и формулы, а также универсальный проверочный ряд формул. Для любых периодов.
Спасибо огроменное. Вы и так очень много сделали, а тут и вовсе по косточкам разобрали решение как преподаватель. Внимательно просмотрю ваше решение. Я уже было думал что выход только в написании трёх отдельных пользовательских функций для трёх ячеек.
(Пока не разобрался какой именно параметр задаёт длину ряда, вижу только 2 параметра усреднения, 5 и 3. В данном случае усреднение 5 равно длине ряда 5. А если усреднения остаются 5 и 3, но ряд к примеру 10 ячеек, то где задаётся этот параметр 10 пока не понял, в прошлом примере он влиял на отсекающие вектора, менялись некоторые константы. Или этот вариант только для случаев когда длина ряда равна старшему периоду усреднения. Именно по этому я в сообщении №10 приводил варианты когда длина ряда равна периоду старшего среднего, и когда больше него (3 параметра). Из-за этого некоторые константы были общими и для параметра усреднения и для параметра длины ряда (длину ряда в том примере вы подразумевали как число строк в матрице, а я-как длина столбца исходных данных, независимо от периода среднего). В следствии чего я не мог понять как меняются константы. Буду разбираться как это задаётся в новом решении.)
Ниже прикрепил один и тот же пример когда длина ряда равна старшему периоду среднего (этот пример и есть в сообщении 4), и когда больше периода старшего среднего. Наверное я, в силу корявости задаваемого вопроса в следствии неопытности, не совсем корректно описал задачу, из-за чего логично воспринято что длина ряда (а следовательно и размер матрицы по длине) всегда равна периоду старшего усреднения.
В голове не укладывается, как настолько простой в отдельных действиях пример с 3-мя параметрами, может выливаться в такое сложное для понимания решение. Видимо проще подойти ко всему этом через пользовательскую функцию, в которой задаётся массив данных по длине ряда, и отдельно периоды для 2-х усреднений.
PS. Если бы программировать было хотя бы так же, как писать стихи...
Сделал универсальные формулы. Для упрощения ещё один столбец с максимумом вставил. Формулы получились в два раза короче. В зелёных ячейках (5,3) можно менять периоды. На листе Разработка остались промежуточные массивы и формулы, а также универсальный проверочный ряд формул. Для любых периодов.
Спасибо огроменное. Вы и так очень много сделали, а тут и вовсе по косточкам разобрали решение как преподаватель. Внимательно просмотрю ваше решение. Я уже было думал что выход только в написании трёх отдельных пользовательских функций для трёх ячеек.
(Пока не разобрался какой именно параметр задаёт длину ряда, вижу только 2 параметра усреднения, 5 и 3. В данном случае усреднение 5 равно длине ряда 5. А если усреднения остаются 5 и 3, но ряд к примеру 10 ячеек, то где задаётся этот параметр 10 пока не понял, в прошлом примере он влиял на отсекающие вектора, менялись некоторые константы. Или этот вариант только для случаев когда длина ряда равна старшему периоду усреднения. Именно по этому я в сообщении №10 приводил варианты когда длина ряда равна периоду старшего среднего, и когда больше него (3 параметра). Из-за этого некоторые константы были общими и для параметра усреднения и для параметра длины ряда (длину ряда в том примере вы подразумевали как число строк в матрице, а я-как длина столбца исходных данных, независимо от периода среднего). В следствии чего я не мог понять как меняются константы. Буду разбираться как это задаётся в новом решении.)
Ниже прикрепил один и тот же пример когда длина ряда равна старшему периоду среднего (этот пример и есть в сообщении 4), и когда больше периода старшего среднего. Наверное я, в силу корявости задаваемого вопроса в следствии неопытности, не совсем корректно описал задачу, из-за чего логично воспринято что длина ряда (а следовательно и размер матрицы по длине) всегда равна периоду старшего усреднения.
В голове не укладывается, как настолько простой в отдельных действиях пример с 3-мя параметрами, может выливаться в такое сложное для понимания решение. Видимо проще подойти ко всему этом через пользовательскую функцию, в которой задаётся массив данных по длине ряда, и отдельно периоды для 2-х усреднений.
PS. Если бы программировать было хотя бы так же, как писать стихи...Slave77
К сообщению приложен файл:__5.xlsx
(12.8 Kb)
·
_10.xlsx
(13.9 Kb)
Сообщение отредактировал Slave77 - Четверг, 21.06.2018, 06:36
(Пока не разобрался какой именно параметр задаёт длину ряда, вижу только 2 параметра усреднения, 5 и 3.
Формулы переделал. Задал параметр длины ряда. Для 10,5,3 показывает правильно. Проверяйте для других значений. Может вкрасться ошибка. Слишком замороченные формулы.
(Пока не разобрался какой именно параметр задаёт длину ряда, вижу только 2 параметра усреднения, 5 и 3.
Формулы переделал. Задал параметр длины ряда. Для 10,5,3 показывает правильно. Проверяйте для других значений. Может вкрасться ошибка. Слишком замороченные формулы.Светлый