dポイントプレゼントキャンペーン実施中!

すみません。
計算式で手こずっております。
詳細を下記に明記しますので
お手数ですが、助言願います。


概要:金額計算式 


A1:50万(自由に金額を入力出来る)
      *50万単位でないとエラーになるようにしたいです。
        50万以下及び50万以下単位でのUPは一律エラー表示を希望

A1=50万の時は50万と表示
50万以下=エラー
70万=50万と表示
100万=100万
150万=150万
190万=150万と表示

といった形です。

どのように計算式を入れたら宜しいでしょうか。
何卒、宜しくお願い致します。

A 回答 (7件)

簡単に整理しましょう。



まず、500000未満をエラー表示にしたいのですよね。
ですので、まずIF関数を使います。

=IF(A1<=500000,"B","エラー")

これで、500000未満をエラー表示にできます。

次に、500000以上の数字で500000周期で繰り上げ表示したいのですよね。
この場合、CEILING関数があります。

=CEILING(A1,500000)

これで、例えば1250000の場合は1500000と表示されます。

あとは、二つの関数を合わせた、2重関数にするだけです。

=IF(A1>=500000,CEILING(A1,500000),"エラー")

これで、500000未満をエラー表示に、500000以上の数字で500000周期で繰り上げ表示ができます。
    • good
    • 0

VBAで実装するなら・・・



(1)シートを右クリック→「コードの表示」を選択して「Microsft Visual Basic」を開く
(2)以下のコードを「Microsft Visual Basic」の右上に貼付
(3)「Microsft Visual Basic」のウィンドウを×で終了

■コード
Private Sub Worksheet_Change(ByVal Target As Range)
If Replace(Target.Address, "$", "") = "A1" Then
With Target
Application.EnableEvents = False
If Not (IsNumeric(.Value)) Or .Value < 50 Then
.Value = "エラー"
Else
.Value = WorksheetFunction.MRound(.Value, 50) & "万"
End If
Application.EnableEvents = True
End With
End If
End Sub

■使用方法
A1に数字を入力すると入力された値をチェックしてmroundで50の倍数値に丸められます
50未満の数値または文字列を入力すると「エラー」と表示します

■変更箇所
◇対象のセルがA1以外の場合
 If Replace(Target.Address, "$", "") = "A1" Then
 の「A1」を該当セルに変更してください
◇セルの値は数字のみで、「万」や「エラー」を書式設定で表示する場合
 (1)
 .Value = "エラー"
 を
 .Value = 0
 としてください
 (2)
 .Value = WorksheetFunction.MRound(.Value, 50) & "万"
 を
 .Value = WorksheetFunction.MRound(.Value, 50)
 としてください
 (3)
 A1のセルの書式設定で表示形式を「ユーザー定義」にし
 種類を「0万;;エラー」としてください
    • good
    • 0

データの入力規則の設定により、「50」刻みの数字以外を受け付けない設定にすることができます。


前準備として、#3さんご回答のとおりセルの書式設定を「ユーザー定義」にし、「G/標準"万"」と入力しておきます。

データ→データの入力規則→設定タブ→入力値の種類(A:) 「ユーザー設定」→数式(F:) に次の式
=a1=rounddown(a1/50,0)*50

この方法では190そのものが受け付けられないので、190を150に変換することはできませんが、当初から50の倍数以外の入力を受け付けなくすることができます。

190をその入力したセル内で150に変換するのは、おそらく関数式では無理で、VBAによるより外ないでしょう。
    • good
    • 0

NO.04のものです。


とんだ勘違いしていました。
繰り上げ(切り上げ)ではなく、
繰り下げ(切り捨て)ですよね。

ですと、CEILING関数ではなく、FLOOR関数となります。

よって、

=IF(A1>=500000,FLOOR(A1,500000),"エラー")

となります。
    • good
    • 0

セルの書式設定を「ユーザー定義」にし、


「G/標準"万"」と入力します。

=IF(A1<50,"エラー",QUOTIENT(A1,50)*50)

50万以下だとエラーと表示し、
あとは50万の倍数で表示するようになっています。

こういうことでしょうかね?
    • good
    • 0

=IF(A1<500000,"エラー",FLOOR(A1,500000))



50以下はエラー表示、50万以上は50万単位で切り捨てします。
    • good
    • 0

IF(A1=”70万”,"50万",IF(A1="190万","150万",IF(A1<="50万",”エラー”,A1))))



こんな感じでしょうか?
そもそも、A1の表記がこれで正しいかわかりませんが…

70万=700000 なら、上記部分を A1=700000 としてください。
たぶん、これであっている…のかと?
(上記例のみ対応できます)
    • good
    • 0

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