2017-12-21 2 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%が到達してから割引率を確認するまで、人口の累積%を上から降りるだけで十分です。

上記の表では、人口の少なくとも30%が第8行(全人口の30.93%)に達しているため、人口の少なくとも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では、異なるアプローチが必要な場合があります。 –

関連する問題