- ベストアンサー
エクセル 数式
次のような場合の数式を教えてください。 例 ある行のセルを、すべて入力した数字から マイナス12,345をした数字が 表示されるように設定したいです。 つまり 25,000と入力するだけで12,655と 表示するようにしたいです。(12,655=25,000-12,345) その為の数式を教えてください。 よろしくおねがいします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>例 ある行のセルを、すべて入力した数字からマイナス12,345をした数字が表示されるように設定したいです。 >つまり 25,000と入力するだけで12,655と表示するようにしたいです。 Excelの数式は表示するセルに設定するものなので、数式を入力したセルに25,000と入力すると数式の代わりに25,000が設定されてしまいます。 また、数値の表示形式では値を変えないで表示状態を代えるものですから計算は行われません。 条件付き書式も対象のセルの状態を判断する数式を使えますが値を替えて表示するものではありません。 回答No.3の提言はExcelで使えるプログラム言語(VBA)で特定のセル(A1)に入力が有ったときに入力された値から12345を差し引いてそのセル(A1)の値を強制的に修正するものです。 従って、入力されたセル(A1)の値は入力時の値(25000)ではなく減算結果(12655)になってしまいます。 つまり、A1セルに25,000と入力した値がそのまま残っていてA1セルの表示だけが12,655になるような方法はありません。
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一つのセル内で処理したい!というコトですね? セルの表示形式では難しいと思います。(簡単に出来る方法があればごめんなさい。) そこでVBAになってしまいますが、一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りA1セルにデータを入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から With Target If .Address = "$A$1" Then If IsNumeric(.Value) Then Application.EnableEvents = False .Value = .Value - 12345 Application.EnableEvents = True End If End If End With End Sub 'この行まで ※ データそのものが 12345 をマイナスした結果となります。m(_ _)m
お礼
ありがとうございました。 お手数をおかけしました。
- kybo
- ベストアンサー率53% (349/647)
A1のセルにデータが入力されてるとして、 B1のセルに =A1-12345 といれます。 表示されるように設定したいという質問なので、もし表示形式のみで表示したいのであれば、できません。 もし、A列にあるデータを一括でしたいのであれば、B1にでも12345と入力、コピー→A列のデータ範囲を範囲選択→形式を選択して貼り付け→減算とします。
お礼
ありがとうございます。 説明不足のようで、うまく伝わっていませんでした。 すみません。 2つのセル(A1,B1のように)を使うのではなくて 1つのセル内(A1)でのことです。 そのセルが設定できれば、あとはコピーするつもりだったのですが・・・ 数字だけを入力 123 し、表示を()付きにする(123)場合の書式が "("#,##0")" のように 数字だけを入力 25000 し、一発で 12,655 と表示できる書式を希望しています。 今回のように、計算(引き算)が必要な場合は 不可能なのでしょうか?
- ryo_ Deathscythe(@Deathscythe)
- ベストアンサー率14% (515/3615)
A1にいれ、B1に引いた数字を表示させるなら B1=A1-12345 但しこれだとA列に数字がなかったら「-12345」と表示されてしまうので・・・ B1=IF(A1="","",A1-12345) としておけばA列に表示されたときのみB列に値が表示されます。 後はこれを必要な分だけB2以降にコピペすればOKです
お礼
ありがとうございます。 説明不足のようで、うまく伝わっていませんでした。 すみません。 2つのセル(A1,B1のように)を使うのではなくて 1つのセル内(A1)でのことです。 そのセルが設定できれば、あとはコピーするつもりだったのですが・・・ 数字だけを入力 123 し、表示を()付きにする(123)場合の書式が "("#,##0")" のように 数字だけを入力 25000 し、一発で 12,655 と表示できる書式を希望しています。 今回のように、計算(引き算)が必要な場合は 不可能なのでしょうか?
お礼
ありがとうございます。 エクセルを熟知していないので トンチンカンな質問だったようですね。 仕組みが、理解できました。