메뉴
해결 엑셀2019윈도우10

vba 사용자 입력값으로 trim 비율 설정이 불가한가요?

1
12월 9일 조회 1,279
VBA에서 사용자 입력 값을 받아 TRIM 비율을 지정하고싶습니다.

result = Application.WorksheetFunction.TrimMean(rng, 0.1)에서

result = Application.WorksheetFunction.TrimMean(rng, value1)로 입력받은 값을 넣으니 아래와 같은 오류가 발생합니다.



TRIMMEAN에서 사용자 입력값으로는 진행을 못하는지, 만약 할 수 있다면 코드를 어떻게 고쳐야 할지 알려주시면 감사하겠습니다.

그리고 상하위 다른 비율을 제거하고 싶을 때(ex 상위 10%, 하위 20%)사용할 수 있는 함수나 방법도 알려주시면 감사하겠습니다!!

댓글 3

원조백수 12월 10일
먼저 샘플이 제대로 된 샘플인지 확인해 주세요.
a. 계산 영역이 정확하지 않습니다.
Set rng = Worksheets("결과시트").Range("C1:C1051")

b. 결과 출력할 시트가 없습니다.
ActiveSheet.Range("H1").Value = Format(result, "hh:mm:ss")

c. 근본적으로 시간에 음수를 사용할 수 없습니다. (텍스트??)
TrimMean을 기존 C열에 적용한 것과, D열에 복사한 후 음수 값을 지운 것 모두 값이 동일합니다.
=> 시간계산시 음수가 있으면 시간형식 말고 그냥 숫자로 두고 계산한 다음에 최종 결과만 시간형식으로 바꾸세요...

1
1y7u3n 작성자 12월 11일
@원조백수 님 안녕하세요? 시간계산시 음수가 있으면 시간형식 말고 그냥 숫자로 두고 계산하라고   답변 주셔서 참고하여 trimmean을 적용하려고합니다.

1.음수 시간 값은 평균에 포함이 안 되는 것 같은데 포함해서 평균 내는 방법이 있나요?

2. 숫자로 두고 계산하라고 하셔서 숫자 형식으로 변환 시 음수 시간만 시간형식으로 그대로 나오는데 음수시간형식도 숫자형식으로 바꿀 수 있나요?

3. 상하위 다른 비율을 제거하고 싶을 때(ex 상위 10%, 하위 20%)사용할 수 있는 함수나 방법도 알려주시면 감사하겠습니다!
원조백수 채택된 답변 12월 11일
1, 2번은 아래처럼 정리하시면 됩니다.
D2 =IF(LEFT(C2,1)="-", -MID(C2,2,10), C2)

Trim범위를 다르게 하려면 하나씩 별도로 정리해서 작업해야 합니다.
맞는지 첨부파일 참고해 보세요.

질문답변 게시판의 최근 글

스크랩 완료