- ベストアンサー
【エクセル】平均を求めたセルとIF関数について
エクセル初心者です。 (1)とある金額の平均を関数を使い表示させたセル と (2)手打ちで金額が入力されたセル があります。 (1)と(2)について、IF関数を使い 平均された金額と手打ちで入力された金額が同じであれば、〇という表示をさせたいと思っています。 しかし、このままIF関数を使おうとすると、平均を求めているセルが 小数点まで入っているためか、うまく式が反映されません。 平均の金額を、小数点を表示させない形式で別のセルに貼り付けて IF関数を使う方法はありますか? また、もっとスムーズな方法があれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
要するに、添付図の「4~5行目」のような感じで使いたいということでしょうか。 添付図を例にとると、各行のA~C列に数値が、 D列に平均値を求めるため「=AVERAGE(A2:C2)」という式、 E列には比較対象にする「手打ちで入力された金額(118)」が入っています。 で、F列に > 平均された金額と手打ちで入力された金額が同じであれば、〇という表示 をするための式、 =IF(INT(D2)=E2,"○","×") を入れています。 つまり、INT関数で「平均値(D列)の整数部分」を取り出し、 それを以てE列と比較して、正なら「○」、否なら「×」を返すようにしています。 否の場合は空白にするのであれば「=IF(INT(D2)=E2,"○","")」のように。 なお、INTと同様の関数、 ROUNDDOWN(切り捨て)関数を使って =IF(ROUNDDOWN(D2,0)=E2,"○","×") TRUNC(整数に丸め)関数を使って =IF(TRUNC(D2)=E2,"○","×") としても、同じ結果が返ります。 参考までにどうぞ。
その他の回答 (2)
- maiko0318
- ベストアンサー率21% (1483/6969)
=INT() を使って小数点以下切り捨てできますのでこれで比較してみたら?
- keithin
- ベストアンサー率66% (5278/7941)
例えば =ROUND(AVERAGE(セル範囲),0) という計算式にしてみます。 10円、20円、20円の3つを平均すると (10+20+20)÷3=16.666… 平均を計算すると、当然場合によってご質問で書かれているように1円未満の「端数」が計算されます。いわゆる「算数」としては、こちらが「正しい計算結果」です。 しかし今回ご質問は「手入力に合わせたい」という事なので、AVERAGEの方で「目的の数字に合うように」工夫しなきゃなりません。 従って肝心なのは、その「手入力」が一体どのように計算されているのか、という事です。 16.666…円を四捨五入すれば17円となりますし、切り捨てなら16円です。もしかすると切り上げで17円にしてたかも?しれません。またそもそも円単位じゃなく、10円単位、100円や千円単位で丸めることだって現実にはよく行われます。 いまご相談では「手入力」が具体的に一体どうやって計算されているのか、何もご説明がありません。関数の方では、目的の計算方法に合うよう追加の関数を正しく選ばなきゃなりませんね。
お礼
まさしく、求めていたのはこれです! 非常にわかりやすい説明、ありがとうございました。