アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelの関数を使用し、一つのセルで「2捨3入、7捨8入」というのでしょうか、「1の位が2以下のときは0に、3から7の時は5に、8以上の時は繰り上げ」といったことはできるでしょうか?

A 回答 (6件)

No.2の補足に対する回答です。



もともとのご質問、
「1の位が2以下のときは0に、3から7の時は5に、8以上の時は繰り上げ(10に)」
の中にある数字を”2倍”してみると、
『1の位が4以下のときは0に、6から14の時は10に、16以上の時は繰り上げ(20に)』
となります。これって、四捨五入と同じですね。

つまり元の値を2倍してから四捨五入(ROUND関数が使えますね)すると、
{0,10,20,,,,}という10刻みの数字に変換され、
その変換された結果を2で割ることで、
{0, 5,10,,,,}ってという5刻みの結果が出るってわけです。

つまり[元の値]を[2倍]してから[四捨五入]して最後に[2で割れ]ば良いわけです

0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,,,,=[元の値]
  ↓
0, 2, 4, 6, 8,10,12,14,16,18,20,,,,=[×2倍]
  ↓
0, 0, 0,10,10,10,10,10,20,20,20,,,,=[四捨五入]
  ↓
0, 0, 0, 5, 5, 5, 5, 5,10,10,10,,,,=[÷2]


これを計算式で表すと、No.2で回答した、

 =ROUND(A1*2,-1)/2

になります。
こんな説明でお分かりになりましたでしょうか。
説明にはちょっと自信なし....^_^;

この回答への補足

おー!!ありがとうございます。バッチリ理解できました。
申し訳ないですがさらにややこしい質問を・・・
今回の質問の場合、運良く2倍で四捨五入ができるようになりましたが、もし「1の位が3以下のときは0に、4から6の時は5に、7以上の時は繰り上げ(10に)」 なんてことになるとどう考えればいいのでしょうか?
すみません、毎回変な質問してしまってm(__)m

補足日時:2002/06/18 00:48
    • good
    • 0

No.5の回答を訂正させてください。



=IF(--RIGHT(A1,1)<3,ROUNDDOWN(A1,-1),IF(--RIGHT(A1,1)>7,ROUNDUP(A1,-1),CEILING(A1,10)-5))

かな?
    • good
    • 0

No.4の補足に対する回答です。



> もし「1の位が3以下のときは0に、4から6の時は5に、7以上の時は
> 繰り上げ(10に)」 なんてことになるとどう考えればいいのでしょうか?

どう考えればいいんでしょうね。(笑)
ご質問のように様々なパターンに対応するとなると、なかなか難しいです。
IF文を使用するのが一番わかりやすかったです。

=IF(AND(--RIGHT(A1,1)>=3,--RIGHT(A1,1)<=7),ROUND(A1*2,-1)/2,ROUND(A1,-1))

一の位が3~7の場合は、前に回答した方法で一の位を5とする四捨五入、
それ以外のときは、普通に四捨五入。といったように場合分けしてみました。

上の例は【3から7の時は5にする場合】ですので、【4から6の時は5にする場合】に対応する際は、下の例のようにAND文の中の数字を変更してください。

=IF(AND(--RIGHT(A1,1)>=4,--RIGHT(A1,1)<=6),ROUND(A1*2,-1)/2,ROUND(A1,-1))

注意事項としてはANDの範囲に必ず5が含まれるようにしないといけないってことですかね。
    • good
    • 0

もっと極く簡単にA列に数値が入っているとして


B列に「=INT(A1+c)」でいかがですか。
cには四捨五入では0.5を使いますが、1より○入の
数を引いた数、0.1、0.2、0.3・・・のどれか1つを適当に選べば良い。小数点第2位の四捨五入等なら
0.002とかを使えば良い。値が正の数とかの
制約にはご注意を。
A列に値を0.1(あるいは0.001)刻みで入れて、上記関数を複写し結果を確認してください。
1例として「=INT(A7+0.7)」。
    • good
    • 0

スイマセン。

再登場ですが。

=ROUND(A1*2,-1)/2

これでよかったですね。

この回答への補足

ありがとうございます。
できるにはできたのですが、この式ができた手順を教えて下さい。
なぜ「2」をかけているのでしょうか?

補足日時:2002/06/16 21:20
    • good
    • 0

A1のセルの値を○捨×入するとして、



正の数だけなら、

=IF(A1<2,0,CEILING(A1-2,5))

正負両方なら、

=IF(AND(A1<2,A1>-2),0,IF(A1<0,-CEILING(-A1-2,5),CEILING(A1-2,5)))

でいいでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!