ELLの足跡

人は最後は一人だという…でも、…今は妻が傍にいてくれる…

Excel関数・・・PERCENTRANK関数(指定した値の相対的な順位を調べます)

今日は、データ範囲の中で百分率を使って、そのデータが範囲の中で何%に位置するのかを調べる関数を紹介してみますね・・・

  • =PERCENTRANK(配列,x,[有効桁数])
    ※ 百分率を使って配列の中に含む指定した値の相対的な順位を返します
      引数の指定の仕方
        【 配 列 】   数値データを含む配列またはセル範囲を指定
        【  x  】    相対的な順位を調べたい値を指定
        【有効桁数】  省略可能、表示する小数点以下の桁数を数値で指定
                 省略した場合は小数点第三位まで計算される



例えば、下の図の場合・・・

  • B列の実績が全体の中でどの位置にいるのか知りたい訳です
  • トップを100%、最下位を0%とします



  • セルC2を例に挙げてみます
  • 全体(配列)はセルB2からセルB7と成ります・・・=PERCENTRANK($B$2:$B$7,x,有効桁数)
    ※ 配列を絶対参照 $B$2:$B$7 にしたのは、ドラグした時に範囲が変わらない様にしたいからです。
  • 順位を調べたい値(x)はセルB2に成ります・・・=PERCENTRANK($B$2:$B$7,B2,有効桁数)
  • 有効桁数は省略します・・・=PERCENTRANK($B$2:$B$7,B2)
  • これをセルC7までドラグします
  • すると、上の数字の様に表示されました。




それでは、この表を使って上位50%以上の社員を表彰する場合に自動で表示させるには如何すればよいのか・・・

  • IF関数を使用します。
  • 先程の数式PERCENTRANK関数の答えが50%以上ですから・・・
        =IF(PERCENTRANK($B$2:$B$7,B2)>=50%,値1,値2)
  • その答えがTRUE(正)なら「表彰」と表示します・・・
        =IF(PERCENTRANK($B$2:$B$7,B2)>=50%,"表彰",値2)
  • その答えがFALSE(偽)なら「空白」のままにします・・・
        =IF(PERCENTRANK($B$2:$B$7,B2)>=50%,"表彰","")
  • これをセルC7までドラグします。
  • これで常に上位50%以上の表彰すべき人のセルが表示されます




今日の小技は如何でしたか?