ちょっと分かり難いタイトルで申し訳ありません。

エクセルで、「あるセルにある数字を入力すると、その数字を倍にした数字となる」ということは可能でしょうか?

例えば、A1のセルに、「1」と入れた場合に「1」と表示するのではなく、倍の「2」として結果を返すようにしたいのです。
A1に「1」を入れて、A2で「2」と返されるのではダメです。

表のフォームが決まっているので、それを変更しないで処理したいのですが、どうにも上手い方法が見つかりません。

ユーザー定義で「0*2」(任意の数字を入れたら2を掛ける、の意図)としたのはダメでした。

よいお知恵がありましたら、お願い致します。

A 回答 (4件)

入力したセルをそうしたいのであれば、関数では不可能ですね。


VBAでやってみました。簡単ですので以下の手順を試してみてください。

1.シートのタブを右クリックし、「コードの表示」を選択。
2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。

'*****ここから下をコピペ*****

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Selection.Count > 1 Then Exit Sub
Application.EnableEvents = False
On Error GoTo line
If IsNumeric(Target.Value) Then Target.Value = Target.Value * 2
line:
Application.EnableEvents = True
End Sub

'*****ここより上までをコピペ*****

3.Alt+F11キーでワークシートへもどります。

さあ、A1に数字を入れてみてください。( ̄ー ̄)v

この回答への補足

さらに複数のセルを同じように設定するにはどうしたらよいのでしょうか?
2行目のセル指定をコロンなどで$A$10と繋いでみたのですが、うまく行きませんでした。

補足日時:2006/12/01 14:19
    • good
    • 0
この回答へのお礼

ありがとうございました!出来ました!
VBAは敬遠していたのですが、これを機会に勉強し直してみたいです。

お礼日時:2006/12/01 14:16

これはエクセル関数では絶対できません。


セルの値を使って演算して、元のセルに戻すと式が壊れますので、どうしてよいかわからなくなるのです。
一旦別変数に退避して、その数を使って演算し、セルにセットできるVBAなら簡単です。
ただデータが変化したときを捉えて、演算をする必要があるので、イベントという仕組みを(Changeイベント)を使わざるを得ません。
エクセル関数の2+1大原則
(1)セルの値を使い関数演算して戻すことはできません
(2)関数は、値しか処理できません(値?値以外に、どんなものが
あるか関心を持ったことがありますか。
(3)エクセルの日付・時刻は日付シリアル数、24時間を1とする数である。
    • good
    • 0
この回答へのお礼

そうですね。関数では出来ません。レクチャーどうも多謝です。

お礼日時:2006/12/27 17:26

◆表示形式による方法です


入力した数字の2倍が表示される方法です
1)表示形式を「ユーザー定義」で、 #/2 とする
2)/2の前を指定して、、 Ctrl を押しながら、J を押す
3)[配置]の「折り返して全体を表示」にチェック
注)入力数字が4~5桁になると、###### になるケースがあります
    • good
    • 0
この回答へのお礼

ありがとうございました。
ですが表示で2倍になっても実態が違うので計算には使えませんでした。
残念でしたが。

お礼日時:2006/12/27 17:24

>さらに複数のセルを同じように設定するにはどうしたらよいのでしょうか?


範囲の指定でいいなら
A1とA10
If Target.Address <> "$A$1" And Target.Address <> "$A$10" Then Exit Sub
-処理-

A列全部
If Target.Column <> 1 then Exit Sub
-処理-

A1:A10の範囲
If Target.Column = 1 then
If Target.Row >= 1 And Target.Row <=10 then
-処理-
End If
End If

If以外で判定なら
Select Case Target.Address
Case "$A$1","$A$10"
-処理-
End Select
    • good
    • 1
この回答へのお礼

ありがとうございました。

お礼日時:2006/12/27 17:22

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q0は公約数?

タイトルの通りなのですが、調べた二つのページでそれぞれ説明が
違っていたので質問します。
最小公約数の説明で「公約数の中の0を除いて一番小さな公約数」
と書いてあったので、真偽のほどをよろしくお願いします。
僕としては、約数には0は含みませんし、
例えば2の約数は1、2で、4の約数は1、2、4
この2と4の公約数は1,2のはずなのに、0、1、2となるのには
違和感があるので0は公約数ではないと思うのですが。

Aベストアンサー

質問者様のご指摘のとおり、0は公約数ではないと、私も思います。
一点、気がかりなことがあります。それは、”最小公約数”です。

二つのページともに”最小公約数”と書いてあったんですネ。

これは私の推測ですが、”公倍数”と”公約数”とが誤記になっているように思います。「公倍数の中の0を除いて一番小さな公倍数」としますと、最小”公倍数”の説明にぴったりあてはまりますよね・・・。

最小公約数を説明するならば、説明するまでもなく1ですよね^^;

参考URL:http://www.tt.rim.or.jp/~rudyard/torii018.html

QEXCELの計算でセルA1に数字、A2に数字ではなく×をいれてA3にはA1とA2の積をいれたいのですが

×をEXCELに1と解釈させたいのです。
つまり、A1に「5」、A2に「×」をいれるとA3は「5」が入るようにしたいんです。
マトリックスをつくっているのですが、
×を「1」にしたくないんです。
ご回答お待ちしております。

Aベストアンサー

A2は×以外の場合もあるのでしょうか?
その場合は、どういう処理をするのでしょう?

A3セルに、
=IF(A2="×",A1,"")
でどうでしょうか?
 A2セルが×であれば、A1を表示し、それ以外の場合はA3セルは""、つまり何も表示しません。

先に書いたように、×以外に、○なら2倍、△なら3倍とか、A2セルの内容により変わるのなら、もっと工夫が必要です。

Q高校数学II 整式の約数・倍数

整式の約数・倍数についての質問です。
X(2乗)-2X+4、X(3乗)+8の最大公約数・最小公倍数を答える問題です。
【X(2乗)-2X+4】 X=解なし
【X(3乗)+8】 (X+2)(X(2乗)-2X+4)
ここまではあっているでしょうか??
この先公約数・公倍数の求め方が分かりません。
X=解なしではない問題の場合は分かるのですが…。
どなたか分かる方いましたらヒントだけでも結構ですので回答お願いします。

Aベストアンサー

数の時はわかりますか?
たとえば 12 と 30 の時
12=2×2×3    また  30=2×3×5
と素因数分解して
最大公約数は 共通する 2×3=6
最小公倍数は 最大公約数と残ったもの(12では2、30では5)
    (2×3)×2×5=60   
整式でも同じです
  X(2乗)-2X+4 はそのまま(解なしとは言いません)
  X(3乗)+8=(X+2)(X(2乗)-2X+4)
ですから
最大公約数は 共通する X(2乗)-2X+4 
最小公倍数は 最大公約数と残ったもので
 (X(2乗)-2X+4)×1×(X+2)
  =(X+2)(X(2乗)-2X+4)
です。

QA1セルにAと入力すると、A2セルに3000A3セルに2000A4セルに1000と表示させたい。

A1セルに「A」と入力する1回だけで、
A2セルに「3000」
A3セルに「2000」
A4セルに「1000」
A5セルに「合計数字」を表示させたいのですが、
式をご教授願いたいです。

よろしくお願いします。

Aベストアンサー

D1:G3
A500030001000
B500300130
C1200800300
A1にA,B,Cのどれかを入れる。
A2に =VLOOKUP($A$1,$D$1:$G$2,ROW(),FALSE)と入れて、
A4まで(G-D-1列数だけの行数)式を複写する。
結果
A1がBの場合A1:A4は
B
500
300
130

A1の空白の場合に対処して
=IF(A1="","",VLOOKUP($A$1,$D$1:$G$2,ROW(),FALSE))
が良いでしょう。
(既回答とほぼ同じ式ですが、1箇所違うところがあります。)

Q公約数

180と270の公約数の求め方を教えてください!

Aベストアンサー

180 = 2×2×3×3×5
270 = 2×3×3×3×5

最大公約数= 2×3×3×5 = 90

公約数の定義として、自然数の範囲での定義を採用するなら
(普通はこの定義を用いる。特に小学校、中学校)
公約数={1, 2, 3, 5, 6, 9, 10, 15, 18, 30, 45, 90}

[参考URL] 正の公約数には1も含まれます。
・ttp://ja.wikipedia.org/wiki/公約数
・ttp://w3e.kanazawa-it.ac.jp/math/category/suu-to-siki/suu/henkan-tex.cgi?target=/math/category/suu-to-siki/suu/kouyakusuu.html

公約数の定義として、整数全体の範囲での定義を採用するなら
(高校以上では問題文により、自然数の範囲の定義か整数の範囲の定義のどちらを指しているか判断する必要があります。)
公約数={1, 2, 3, 5, 6, 9, 10, 15, 18, 30, 45, 90,-1,-2,-3,-5,-6,-9,-10,-15,-18, -30, -45, -90}
となります。

[参考URL]
・ttp://ja.wikipedia.org/wiki/約数
・ttp://kotobank.jp/word/公約数
・ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12120832487

参考URL:http://kotobank.jp/word/%E5%85%AC%E7%B4%84%E6%95%B0

180 = 2×2×3×3×5
270 = 2×3×3×3×5

最大公約数= 2×3×3×5 = 90

公約数の定義として、自然数の範囲での定義を採用するなら
(普通はこの定義を用いる。特に小学校、中学校)
公約数={1, 2, 3, 5, 6, 9, 10, 15, 18, 30, 45, 90}

[参考URL] 正の公約数には1も含まれます。
・ttp://ja.wikipedia.org/wiki/公約数
・ttp://w3e.kanazawa-it.ac.jp/math/category/suu-to-siki/suu/henkan-tex.cgi?target=/math/category/suu-to-siki/suu/kouyakusuu.html

公約数の定義として、整数全体の範囲での定義を採用するなら...続きを読む

QA1に数字の1を入力するとB1の値がA1に表示、A2に数字の2を入力するとB2の値がA2に表示

エクセル初心者です

セルのA1に数字の1を入力するとB1の値がA1に表示、A2に数字の2を入力するとB2の値がA2に表示されるようなものを作りたいのですが・・・
どなたかご教授お願いします

例えば、A1に1を入れるとB1の値"北海道"がA1に表示され、A2に2を入れるとB2の値"青森"がA2に表示といった感じでです

宜しくお願いいたします

Aベストアンサー

No3,5,6です。
補足要求をしましたが時間がないので、No6での以下の理解、

B4がROOT,C4が♭9,D4が9,E4がm3,F4がM3~M4がM7
置き換え対象はB6:W11の範囲

ということでいいのなら以下で出来ます。

1.シートのタブを右クリックし、コードの表示を選択
2.出てきたVBエディター(白い画面)に下記をコピペ

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x
If Intersect(Target, Range("B6:W11")) Is Nothing Then Exit Sub
x = Target.Value
Application.EnableEvents = False
Target.Value = Range("A4").Offset(0, x)
Application.EnableEvents = True
End Sub

3.AltキーとF11キーを一緒に押してワークシートへもどります。

Q公約数で

解答をみていてちょっと分らない部分があったのでご質問させていただきます。(表記しづらいので、数列Anで第n+1項を A(n+1)と表します)分らないのは、帰納法での証明の一部分です。また【 】の中は前問で証明されていたり条件として成り立っているとします。

【A(n+1) = An+Bn , B(n+1) = An … (1) 
 An,Bnは自然数で互いに素 … (2) 】

(1)、(2)からA(n+1)とB(n+1)は自然数である。
ここでA(n+1)とB(n+1)が互いに素でないとすると、
A(n+1)とB(n+1)は1より大きい公約数rを持つ。
________________________(ここまでは分ります)

(1)より Bn = A(n+1)-An
であるからrはBnの約数でもありrはAnとBn
の1より大きい公約数である。
______________________
この部分が分りません^^;どうしてrはBnの約数でもありrはAnとBnの1より大きい公約数であるのでしょうか?分る方お願いします。

解答をみていてちょっと分らない部分があったのでご質問させていただきます。(表記しづらいので、数列Anで第n+1項を A(n+1)と表します)分らないのは、帰納法での証明の一部分です。また【 】の中は前問で証明されていたり条件として成り立っているとします。

【A(n+1) = An+Bn , B(n+1) = An … (1) 
 An,Bnは自然数で互いに素 … (2) 】

(1)、(2)からA(n+1)とB(n+1)は自然数である。
ここでA(n+1)とB(n+1)が互いに素でないとすると、
A(n+1)とB(n+1)は1より大きい公約数rを持つ。
_______...続きを読む

Aベストアンサー

>A(n+1)とB(n+1)は1より大きい公約数rを持つ。
ここから
A(n)=B(n+1)もrの倍数です。

つまり、A(n+1)もA(n)もrの倍数です。

よって、
>Bn = A(n+1)-An
の右辺はrの倍数からrの倍数を引いたものなので、全体もrの倍数。
つまり、B(n)もrの倍数である事が分かります。

A(n),B(n)はどちらもrの倍数である事が分かりましたから、rはA(n),B(n)の公約数です。rは1より大きいと仮定していたので、

>rはBnの約数でもありrはAnとBnの1より大きい公約数である。

となります。

言葉で説明しましたが、
A(n+1)=r*a(n+1),B(n+1)=r*b(n+1)などとけば、分かりやすいと思います。

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

Q22に対して、1以外に公約数を持たない数

100から200までの自然数で、「22に対して、1以外に公約数を持たない数」
とは、どういうことですか?
日本語の意味が分からないです。あと、解き方も教えてください。
お願いします。

Aベストアンサー

「100~200までの ある数と 22の公約数が 1だけの数は何ですか?」
という意味です。

  たとえば、100の場合、 100 と 22 との公約数は 1と 2なので
 対象外です。

QEXCELでA1セルに「13ヶ月」と入力すればA2セルに「1年1ヶ月」と表示されるようにしたい

EXCELで、「●ヶ月」を「●年●ヶ月」に変換する関数や計算式を入力したいです。

例えば、
A1セルに「13ヶ月」と入力すれば、
A2セルには「1年1カ月」と表示されるようにしたいです。

この場合、A2セルに入力するべき計算式を教えて頂けないでしょうか?

※もちろん、入力するのは上記例の「13ヶ月」だけではなく、「24ヶ月」とか「45ヶ月」とか、数値は色々です。

※この場合あまり関係ないかもしれませんが、一応バージョンはEXCEL2007です

よろしくお願いします。

Aベストアンサー

入力は文字でしょうか?
それとも数値で13と入力で表示形式が 0"ヶ月" ですか?
後者ならNo2の方の方法で解決します。
前者の場合はもうひと手間加えて
A2=TEXT(INT(LEFT(A1,LEN(A1)-2)/12),"0年;;")&TEXT(MOD(LEFT(A1,LEN(A1)-2)*1,12),"0ヶ月;;")


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報