
No.5ベストアンサー
- 回答日時:
>A1に =int(A1*1.05)と関数を入力し A1に100 を打ち込んだ
結果は当然100になります。式を入力したA1セルを100で上書きしたからです。式は参照する値のセル(A1セル)とは別のセルに入力しなければなりません。A2セルに質問にある式を入れれば105になります
>同一セルで数値を入力すると消費税込みの数字に変換できる方法はありませんか?
ありますがマクロが必要です。またあまり実用的ではありません。
それは通常は「入力されたら」はエクセルでは「セルが変更されたら」しか判定できませんから100と入力したら105にできますが、次にそのセルをダブルクリックしたら(=更新モードにしたら)勝手に110(105×1.05の小数点以下切り捨て)になりますよ
自分が意図しないのに数字が変わってしまう可能性があると、シートの信憑性がなくなります。
もちろん別シートなりに前の数字を書き込んでおいて、「本当に数字が変わったか」を調べる方法もありますが、それではワークシート関数で元の値と計算結果が別のセルに表示されるのと、何ら変わらなくなります。
それでもよいならマクロを書くのは簡単ですが、本来のエクセルの「便利機能」であるワークシート関数を利用するところから始められた方がいいですよ。
No.7
- 回答日時:
お望みの方法はVBAが必要です。
Worksheet_Changeイベントを使えば自動にできますが、この場合は、コードを実行するセルの範囲の指定
が必要です。でないと、シート全ての入力に対して計算を実行してし
まうからです。
下記例はA列のみ、入力値に1.05を乗じるコードです。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
If Range(Target.Address).Column = 1 Then
Range(Target.Address).Value = _
Int(Range(Target.Address).Value * 1.05)
End If
Application.EnableEvents = True
End Sub
4行目の
Range(Target.Address).Column = 1
の所で、A列なら1,B列なら2... と動作範囲を指定します。
例えば、B5:B10だけ計算を実行させたいなら、
If Range(Target.Address).Column = 2 And _
Range(Target.Address).Row >= 5 And _
Range(Target.Address).Row <= 10 Then
のように条件指定します。
No.4
- 回答日時:
関数の場合
A1セル 100 と入力
A2セル =int(A1*1.05) と入力すると
A2セルの計算結果は 105 になります。
関数は、入力したセルと異なるセルに計算結果を返すのに向いています。
マクロ
※A1セルの値を1.05倍で乗算した整数(=int(A1*1.05)
をA1セルに表示する
Range("A2").Select
ActiveCell.FormulaR1C1 = "=INT(R[-1]C*1.05)"
Range("A2").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2").Select
Application.CutCopyMode = False
Selection.ClearContents
このマクロは汎用性がありませんので、実用に即した使い方の場合は別途
マクロを応用してください。
(簡単なマクロならば、新しいマクロの記録 で登録できます)
No.2
- 回答日時:
同一セル内の処理は不明です。
ごめんなさい。今、rikopi777さんがされているのは、計算させたいセルA1を計算式に含めてしまっているので、永遠に計算続ける状態、循環参照(excel上の名称)になってしまいます。A1の結果を踏まえてまた計算しますのでぐるぐると計算し続けてしまうのです。(説明べたでごめんなさい。)
※循環参照→http://www.relief.jp/itnote/archives/001351.php
エクセルでは、セル上に最後に入力したデータが残ります。
A1に、計算式を入力した後、A1に100と入力されているので、最後に入力された100が計算式を上書きして残っている状態です。
同一セル内ではなく、計算式を別セルにすると正しく計算されますので、計算式=int(A1*1.05)をB1に入力後A1に100と入力されると105がB1に結果として表示されます。
ご希望の方法じゃなくてごめんなさい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
- Excel(エクセル) エクセル・セルに数式を入力してセル指定計算 2 2023/04/21 12:46
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】列を折りたたみ非表...
-
9月17日でサービス終了らし...
-
【マクロ】アクティブセルの時...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルの循環参照、?
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報