후행 누적 합계 공식나는 매우 쉬운 포뮬러가 필요한 것을 가지고 있습니다. 온도 데이터 세트가 있고 지난 120 일 동안의 누적 누적 합계를 계산해야합니다 (이 합계를 7로 나누어 주로 변환하므로 "도열 주"라고 함). 후행 평균을 얻는 방법과 누적 합계를 얻는 방법을 알고 있지만 후행 120 일 누적 합계를 얻을 수 있습니까? 이 경우 온도가 31.3C를 통과하면 0.25의 "점수"가 제공됩니다 (공식은 "DH-6 시간"열 참조). 기본적으로 120 일 기간 동안이 0.25 값의 누적 합계를 원하지만 실제 기간이 아닌 날짜 / 월 / 년 등으로 분할하는 방법 만 알고 있습니다 (예 : "#DHWs"스크립트 참조). 시간. 나는 이것이 가능해야한다고 확신합니다!
해석학데이터 테이블스크립팅Re : 후행 누적 합계 공식원하는 것을 올바르게 해석하고 있다면 아래 공식이 누적 120 누적 합계를 계산할 것이라고 믿습니다.
If( Row() == 1,
holdMatrix = []
);
If( :Name( " Sea Surface Temperature (deg C)" ) > 31.3,
holdMatrix = holdMatrix || Matrix( 0.25 ),
holdMatrix = holdMatrix || Matrix( . )
);
If( N Cols( holdMatrix ) == 121,
holdMatrix[1] = []
);
Sum( holdMatrix ) / 7;
Re : 후행 누적 합계 공식큰! 그게 속임수였습니다. 하루에 8 번의 측정 시간이 있다는 사실을 반영하도록 수정했습니다 (즉, 각 행이 고유 한 날이 아니므로 평가에서 121 x 8 = 968을 곱했습니다). 값이 떨어지기 전에 이전에 계산 한 연간 최대 값에 도달하기 때문에 데이터가 의미가 있습니다. 정말 고마워. 수식 편집기에 열 이동 평균 (내가 항상 사용하는)과 유사한 입력이있는 후행 누적 합계가 있었으면합니다. 이전에는 가중치와 N입니다. 위시리스트에 추가하겠습니다.
Re : 후행 누적 합계 공식데이터 세트의 성가신 한 가지 문제에서 발생하는 질문이 있습니다. 지난 120 일 동안 누적 합계를 몇 시간 (앞에서 언급했듯이 몇 주가 아님)으로 평가해야합니다. 그러나 시간 간격이 일치하지 않습니다 (첨부 된 표 참조). 대부분의 경우 하루에 8 회 측정되지만 때로는 더 적습니다. 기본적으로 온도가> 31.3 일 때마다 열에 시간 차이를 추가하고 싶습니다. "dif"기능을 사용하면 간단합니다. 그러나 내가 어려움을 겪는 곳은 매트릭스 공식에 "120 일"을 추가하는 방법입니다. 따라서 첨부 된 표에서 후행 120 일 동안 "DHH"의 누적 합계를 계산하려고합니다. 수식에 "행"수가있는 대신 날짜를 추적하는 데 필요합니다. 가능합니까?
Re : 후행 누적 합계 공식어떤 제수를 사용하고 있는지 정확히 모르겠지만 데이터 행렬의 범위에서 시간을 사용했습니다.여기 내가 생각해 낸 공식이 있습니다.
If( Row() == 1,
holdMatrix = [];
dateMatrix = [];
);
If( :Name( " Sea Surface Temperature (deg C)" ) > 31.3,
holdMatrix = holdMatrix || 0.25;
dateMatrix = dateMatrix || Informat( :date, "m/d/y" );
);
If( N Cols( dateMatrix ) != 0,
While( dateMatrix[N Cols( dateMatrix )] > dateMatrix[1] + In Days( 120 ),
holdMatrix[1] = [];
dateMatrix[1] = [];
);
x = Sum( holdMatrix ) / ((dateMatrix[N Cols( dateMatrix )] - dateMatrix[1]) / In Hours( 1 ));
,
x = .
);
x;
Re : 후행 누적 합계 공식Jim, 내 질문을 다시 봐 주셔서 감사합니다. 새 공식의 결과 값이 너무 낮은 것 같습니다 (공식이 의미가있는 것 같음에도 불구하고). 하지만 내 필요를 다르게 말 했어야했는데,이 경우 더 간단하거나 최소한 더 간단한 해결책이있을 수 있습니다. 온도가 지난 120 일 동안의 총 HOURS 수를 알고 싶습니다. 31.3C. 온도는 3 시간마다 (대부분의 경우) 측정되기 때문에 일반적으로 3 시간 블록과 동일하므로 기본적으로 3의 합계입니다 (첨부 된 표의 "DHH"열 참조). 따라서 값은 가장 따뜻한 달에 수백 개가 될 수 있습니다. 따라서 기본적으로 DHH 열의 후행 120 일 합계가 필요하지만 하루에 측정 횟수가 다른 문제를 고려하면 까다 롭습니다!
Re : 후행 누적 합계 공식합계를 원하면 합계를 아무것도 나누지 마십시오.
If( Row() == 1,
holdMatrix = [];
dateMatrix = [];
);
If( :Name( " Sea Surface Temperature (deg C)" ) > 31.3,
holdMatrix = holdMatrix || 0.25;
dateMatrix = dateMatrix || Informat( :date, "m/d/y" );
);
If( N Cols( dateMatrix ) != 0,
While( dateMatrix[N Cols( dateMatrix )] > dateMatrix[1] + In Days( 120 ),
holdMatrix[1] = [];
dateMatrix[1] = [];
);
x = Sum( holdMatrix ) ;
,
x = .
);
x;