Получение уравнения от линий тренда, как только они были отформатированы - PullRequest
0 голосов
/ 03 января 2019

Доброе утро,

Эта проблема мучает меня еще до Рождества. У меня есть график, на котором я применяю линии тренда, чтобы затем отформатировать линию тренда, чтобы получить более подробное уравнение для 6 сигма, а не для режима по умолчанию. Однако, когда я прихожу, чтобы извлечь уравнение линий тренда, иногда я получаю полную 6-сиговую версию уравнения, а иногда я получаю версию по умолчанию. Я не вижу логики, почему это происходит от случая к случаю, хотя я уверен, что для этого есть причина. Код, который я использую ниже (я также уверен, что могут быть гораздо более эффективные способы кодирования этого - в настоящее время просто пытаюсь заставить его работать)

Set t = My_Chart.Chart.SeriesCollection(X).Trendlines(1)
t.DataLabel.NumberFormat = "0.00000E+00"
Application.Wait (Now + TimeValue("0:00:01"))
Eqn_Len = Len(t.DataLabel.Text)
LHS_Len = Round(Eqn_Len / 2)
RHS_Len = Eqn_Len - LHS_Len
LHS = Left(t.DataLabel.Text, LHS_Len)
RHS = Right(t.DataLabel.Text, RHS_Len)
Equation_Formula = LHS & RHS
Cells(95, 1) = Equation_Formula
Equation_Formula_Main = Replace(Equation_Formula, "y=", "")
Equation_Formula_Main = Replace(Equation_Formula_Main, "x3", "x^3")
Equation_Formula_Main = Replace(Equation_Formula_Main, "x2", "x^2")
Cells(95, 1).Value = Equation_Formula_Main
Equation_Formula_Main = Right(Equation_Formula_Main, Len(Equation_Formula_Main) - 2)

Линия тренда, которую я использую, является полиномом 3-го порядка с 15-30 точками, в зависимости от данных. Кто-нибудь может увидеть причину, почему это было бы так?

Чтобы помочь, я добавил пример. Я определил все длины как double, переменные, которые содержат строки как строки и t как линию тренда

Мое текущее уравнение = "y = -8.80186E-09X ^ 3 + 1.28815E-04X ^ 2 - 5.17488E-01X + 7.06521E + 02. Это дает переменной Eqn_Len значение 42, что явно неверно, однако значение Len(t.DataLabel.Text) равно 63. После кода переменная LHS становится "y = -9E-09X ^ 3 + 0,0001", а переменная RHS становится "x ^ 2 - 0,5175X + 706,52. Вы можете видеть, что это уравнение превосходит версию линии тренда по умолчанию, а не форматированную версию, какой она должна быть.

Спасибо за любую помощь, которую вы можете оказать, а также за любой свет, который вы можете пролить на эту довольно небольшую, но раздражающую проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...