2011-08-15 2 views
1

계산 된 숫자를 표에서 가장 가까운 값으로 반올림해야합니다. 표의 값은 순차적이지 않으며 값 사이의 간격이 동일하지 않습니다. (I 실제로 값의 패턴을 찾을 수 없어.) 여기Excel에서 비표준 간격의 복잡한 반올림

테이블의 값은 다음과 같습니다

1 
10 
20 
40 
70 
120 
180 
260 
360 
610 
940 
1350 
1780 
2220 
2720 
3490 
4770 
6500 
8070 
10000 

내가 53.36의 계산 된 번호가 경우에 따라서 예를 들어, 수식해야 테이블 값 40을 반환합니다. 값이 55 이상이면 70을 반환합니다.

+0

이 질문은 프로그래밍과 관련이 없습니다. 이 파일은 여기가 아닌 superuser.com에 게시해야합니다. –

답변

2

마지막 매개 변수가 1 또는 true (정확하지 않음) 인 vlookup을 사용하십시오.

범위와 그 범위의 vlookup에 값을 입력하십시오. 검색 값보다 크지 않은 가장 가까운 값을 찾습니다.

편집 : ... 귀하의 수는 Moody 's가 채권 평가에 사용하는 WARF (가중 평균 등급 계수)입니다. here을 참조하십시오.

편집 # 2 : 찾고있는 "반올림"을 얻으려면 검색 범위에 다음 번호가있는 두 번째 열이 있어야합니다. 예 : 20 열의 행에서 두 번째 열은 40을 표시합니다. 40 행의 두 번째 열에는 70이 표시됩니다. 그런 다음 수식에서 hava는 동일한 검색 범위에 대해 두 번째로 vlookup하지만 두 번째 열은 반환합니다. 두 숫자 (예 : 55의 값으로 40과 70)를 얻으면 수식에서 수학을 수행하여 표시 할 항목을 결정할 수 있습니다.

+0

빠른 답변을 주신 Jonathan에게 감사드립니다! 그리고 숫자 사이의 관계를 알아내는 것. 제안이 다소 효과가 있지만, 값이 간격 사이의 중간보다 아래에있는 경우에만 제안합니다. 예를 들어, vlookup을 매개 변수 1과 함께 사용하는 계산 된 67의 값은 70 대신 40의 값을 리턴합니다. 실제 가장 가까운 값으로 반올림하지 않습니다. – ccase

+0

내 두 번째 편집을 참조하십시오. –

+0

완벽한! 매력처럼 작동합니다. 큰 충고에 감사드립니다! – ccase

0

VBA를 사용하는 경우 빠르고 간단해야합니다. 귀하의 전화 번호와 그 다음 2 개의 전화 번호의 차이점을 확인하십시오. 차이가 첫 번째 숫자보다 적 으면 그 숫자가 반환하려는 숫자입니다.

+0

Excel에는 if-then 루프가 없습니다. 이 응용 프로그램에 대한 과잉 인 VBA로 이동해야합니다. –

+0

잔인한가요? 정말? 몇 줄의 간단한 코드는 반올림하기 위해 다른 데이터 열을 만드는 것보다 나빠요? 너 나 지금 놀리는 거지. – aevanko

+1

그리고 답은 도움이되지 않을 때를위한 표입니다. VBA가 최선의 방법이라고 생각하지 않는다고해서 대답이 자신보다 적합하지 않다는 것을 의미하지는 않습니다. – aevanko

0

배열 기능 (일명 CSE 기능)에 대해 생각해보십시오. 테이블이 범위 A1 인 경우 : A20, 그리고 조회 값이 C1에,이 기능을 사용

=IFERROR(VLOOKUP(C1+MIN(ABS(A$1:A$20-C1)),A$1:A$20,1,FALSE),VLOOKUP(C1-MIN(ABS(A$1:A$20-C1)),A$1:A$20,1,FALSE)) 

다음 컨트롤이-Shift 키 입력 (Enter를하지 않음). 기본적으로이 값은 C1과 테이블의 모든 값 사이의 최소 절대 차이를 찾습니다. 그런 다음 테이블을 추가하고 테이블에 있는지 VLOOKUP을 시도합니다. 실패하면 VLOOKUP을 뺍니다. 조금 복잡하지만 아이디어를 줄 수도 있습니다.