2017-12-21 4 views
0

나는 인구의 임계 퍼센트가받은 최대 할인을 찾아내는 것을 도울 수있는 공식을 찾아내는 것을 시도하고있다.받은 인구의 임계 값 백분율이 최대 할인을 결정하는 방법

예를 들어, 아래 표에서 최소한 인구의 30 %가받는 최대 할인을 알고 싶습니다.

Population Discount 
400   25% 
3000   24% 
2000   23% 
1000   22% 
850   20% 
400   19% 
350   18% 
350   15% 
1500   13% 
450   12% 
700   11% 
3000   5% 
7000   3% 
6000   2% 

위와 같이 할인 금액으로 데이터를 내림차순으로 정렬하면 충분합니다. 적어도 30 %가 도달 할 때까지 인구의 누적 %를 내려 가서 할인율을 확인하는 것만 큼 간단합니다.

위의 표에서 8 번째 줄 (전체 인구의 30.93 %)에서 최소한 인구의 30 %에 도달하므로 인구의 30 % 이상을받을 수있는 최대 할인은 15 %입니다.

그러나 데이터가 순서대로 없으면 어떻게해야합니까? 가장 높은 할인순으로 먼저 정렬 할 필요없이 아래 표에서 같은 답변을 얻으려면 어떻게해야합니까?

People Discount 
700  11% 
3000  24% 
3000  5% 
1000  22% 
6000  2% 
400  25% 
350  18% 
350  15% 
1500  13% 
450  12% 
850  20% 
400  19% 
7000  3% 
2000  23% 
+1

데이터를 정렬하는 것이 좋습니다. 이렇게하면 삶이 훨씬 쉬워집니다. 현재 주문을 유지 관리하는 것이 중요하면 번호가 지정된 도우미 열을 추가하십시오. 따라서 해당 열을 정렬하면 데이터가 원래 형식으로 되돌아갑니다. – Luuklag

+0

감사합니다, Luuklag. 내가 가진 문제는 실제 소스 테이블이 위의 예보다 복잡하고 최종 사용자가 소비하기 쉬운 데이터를 만드는 다른 열로 정렬된다는 것입니다. 불행히도 그러한 테이블이 여러 개 있으며 할인 및 인구수가 변할 때마다 정렬 순서를 가장 높은 가격으로 변경 한 후 X %의 최대 할인율을 찾는 작업을 다시해야합니다. 나는 그 일의 단조 로움을 제거 할 길을 찾고 싶다. – DLR

+0

VBA 코드를 기꺼이 작성하면 매우 잘 될 것입니다. – Luuklag

답변

0

헬퍼 칼럼을 사용하여이 작업을 수행 할 수있었습니다.

=SUMIFS($A$2:$A$15,$B$2:$B$15,">="&B2) 

(가정 데이터가 A1에 있습니다 : B15)

많은 사람들이 그 할인 또는 더 나은을 얻었는지 제공하는 도우미 열을 정의합니다. 이
People Discount Helper 
700  11%  11000 
3000  24%  3400 
3000  5%  14000 
1000  22%  6400 
6000  2%  27000 
400  25%  400 
350  18%  8000 
350  15%  8350 
1500  13%  9850 
450  12%  10300 
850  20%  7250 
400  19%  7650 
7000  3%  21000 
2000  23%  5400 

지금 당신이 원하는 열 C의 값이 사람의 총 수의 30 % 이상이되도록 열 B의 최대 할인을 찾는 당신에게 제공합니다.

=MAXIFS(B2:B15,C2:C15,">="&30%*SUM(A2:A15)) 

원한다면 해당 매개 변수가 들어있는 셀 참조로 30 % 하드 코딩 할 수 있습니다.

+1

'MAXIFS'는 Excel 2016 이후 버전에서 사용할 수 있습니다. 이전 버전의 Excel에서는 다른 접근 방식이 필요할 수 있습니다. –