• ベストアンサー

エクセル2003の関数について

   A     B  1 100   50 2 300   150 3 500   300 4 400   240 5 200   100 このように、A列に数字を入れていったときにB列に返す関数があったら教えてください。A列の最大値と二番目に大きい数字の時はBにその60%を返し、その他は50%を返すというものです。 最終的に5列まで数字が入ると上記のような結果になりますが、その途中例えば3列目までの時はA2が二番目に大きい数になるのでB2は180になります。 初心者にもわかりやすくご説明いただくと幸いです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 色々方法はあるかと思いますが・・・ 一例です。 A1からデータが入っていると仮定して、A100セルまで対応できるようにしてみました。 B1セルに =IF(A1="","",IF(RANK(A1,$A$1:$A$100)<=2,A1*0.6,A1*0.5)) としてオートフィルで下へコピーしてみてください。 尚、数式の範囲指定の領域はデータ量によってアレンジしてください。 以上、参考になれば幸いです。m(__)m

totustoti
質問者

お礼

早々のご回答ありがとうございます。 早速使わせていただきました。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

以下のような数式をB1セルに入力し下方向にオートフィル(コピー)します。 =IF(A1="","",IF(RANK(A1,A:A)<=2,A1*0.6,A1*0.5))

totustoti
質問者

お礼

早々のご回答ありがとうございます。 早速使わせていただきました。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

たとえばBに下式 =IF(OR(RANK(A1,$A$1:$A$5,0)=1,RANK(A1,$A$1:$A$5,0)=2),A1*0.6,A1*0.5)

totustoti
質問者

お礼

早々のご回答ありがとうございます。 早速使わせていただきました。

関連するQ&A