- 締切済み
excelの自動計算について
Excelのセルに入力された数字を自動で変換 例えばA1セルに「8」と入力した場合、自動で×10で計算して値をA1に表示する事は可能でしょうか?A列にはある物の数をカウントした数字が入るのですが、「8」の時は×10、「3」の時には×5など、数字によって×の式を変更したいのです。別の列に数式を入れたり、別の表を作成してVLOOKUPで計算したりすれば、簡単にできると思うのですが、そのような作業は無しで、できないでしょうか?ご存知のかたおられましたら教えて下さい。宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- merlionXX
- ベストアンサー率48% (1930/4007)
patty12345さん、こんにちは。merlionXXです。 関数では無理ですので、ためしにVBAで作ってみました。 以下の手順で設定します。 1. そのような設定をしたいシートのシートタブを右クリックして、[コードの表示]。 2. 出てきた右側の白い所に、下記のコードを貼付けます。 3. 一番右上の × でExcelの画面に戻ります。 これでA列に限り、8なら10倍、5なら7倍、3なら5倍、それ以外は1倍(変更なし)となります。 '********これより下********** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 1 Then Exit Sub 'A列でなければ終了 If Not IsNumeric(Target.Value) Then Exit Sub '数字でなければ終了 Select Case Target.Value '数字により場合分け Case 8 '8の場合 x = 10 Case 5 '5の場合 x = 7 Case 3 '3の場合 x = 5 Case Else x = 1 End Select On Error GoTo line 'エラーの場合lineへ飛ぶ Application.EnableEvents = False 'イベント停止 Target.Value = Target.Value * x 'xを乗ずる line: Application.EnableEvents = True 'イベント再開 End Sub '********これより上**********
- Sinogi
- ベストアンサー率27% (72/260)
>例えばA1セルに「8」と入力した場合、自動で×10で計算して値をA1に表示する事は可能でしょうか? ちょっと考えればわかるはずですが、不可能です。 A1に8を入力 →A1に80をセット →入力されたと認識される →A1に800をセット →入力されたと認識される →A1に8000をセット →入力されたと認識される →A1に80000をセット →入力されたと認識される ・・・・
お礼
merlionXX様 詳しい回答ありがとうございました。 VBAでやりたかったのですが、式が上手くできなくて 何か他の方法は無いか質問してみたのですが、本当に助かりました。 ありがとうございました!早速やってみます!