エクセル2002使用です。

IF関数で、名前の定義を利用したいのですがうまくいきません。


A1に数値「1」を入力するかしないかとします。

(A1:C1)を名前の定義で「範囲1」とします
各セルに文字が入力されています。

(D1:F1)を名前の定義で「範囲2」とします。
各セルはブランクのままです。


A1セルに数値「1」が入力されて時に、「範囲2」に「範囲1」がコピーされるようにしたいのですがどうすればいいのでしょうか?


範囲2=IF(A1=1,範囲1)

ではだめですよね。。。。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>今回は関数のみで処理したいのですが、何とかならないでしょうか?


例えば、単に、オブジェクトを写すだけでよいというのならなんとかなっても、そうでなければ、以下のように、D1:F1(範囲2)に、式を埋め込まないと出来ません。

とどのつまり、
D1:F1 に
=IF($A$1=1,A1,"") ....
というような式でしか埋められないのです。
関数式は、そこに戻り値を返す、ということしかしません。

定義した「名前」を使うのでしたら、以下のようになります。
=IF($A$1=1,INDEX(範囲1,,COLUMN(A1)),"")....

>「範囲2」に「範囲1」がコピーされるようにしたい
という、実際のセルの値をコピーするような動作を伴ったことは、Excelの関数では、根本的に出来ないのです。残念ですが。
    • good
    • 0
この回答へのお礼

Wendy02様何度もありがとうございます。

範囲で一気にできたら楽だと思うのですが・・・
そこはVBAということになるのですね。

INDEX関数ありがとうございます。
検討してみます。

今後ともよろしくお願いします

お礼日時:2005/04/19 21:24

関数を使うと云うことになると、例えば、


D1セルにA1セルの内容を反映しようとすると

[D1]=IF(A1=1,A1,"")

とすればいいわけです。
E1,F1セルについても、

[E1]=IF(A1=1,B1,"")
[F1]=IF(A1=1,C1,"")

となります。
で、ここまで書けば、何となくわかってもらえるかと思いますが、
セルが参照できるのは1つのセルに1つのセルが対応します。
範囲で複数セルを指定した場合は、どのセルのデータを使うのかがわからないため、エラーになります。

したがって、上記の例で示したように、一つのセルが一つのセルを参照するようにしないとダメです。

ご質問のように複数セルに複数セルを対応させるのは無理です。

ですから、名前を定義する場合も一つのセルに名前を付けて利用しないと、エラーとなります。
    • good
    • 0
この回答へのお礼

DoragonFang様 早速のご回答ありがとうございます。

やっぱりだめですか。。。

名前の定義の機能があるのでできそうな気がしたんでうすが・・・

ありがとうございました。
今後ともよろしくお願いします

お礼日時:2005/04/19 21:19

以下の方法は如何でしょうか。


(1)範囲2をドラッグ
(2)関数「=IF(A1=1,範囲1,””)を入力
(3)関数「Enter」する際、「Shift&Ctrl」を押下する

この回答への補足

mu2011さま早速のご回答ありがとうございます。

範囲2をドラックしても数式の入力はD1セルにされてしまうため上手くいきません。

(3)の関数「Enter」する際、「Shift&Ctrl」を押下する がどのような効果があるのかよくわからないのですが・・・

ご多忙中すいません。よろしくお願いします。

補足日時:2005/04/19 18:17
    • good
    • 0

>A1セルに数値「1」が入力されて時に、「範囲2」に「範囲1」がコピーされるようにしたいのですがどうすればいいのでしょうか?


◎ 範囲2=IF(A1=1,範囲1)

その式の考え方が、もうプログラム式なんですね。
VBAの作り方は、ちょっと違いますが、たぶん、以下のコードを見ていて、なんとなくお分かりになるかと思います。

シート上のシートタブ(シートの下部のSheet1/Sheet2/..)を該当するシートを右クリック
コードの表示をクリックで以下を貼り付けます。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Range("A1").Value = 1 Then
'A1に1が入ったときだけ、起動する
 Application.EnableEvents = False '貼り付け時に自動で働かないようにする
 Range("範囲2").Value = Range("範囲1").Value
 Application.EnableEvents = True '解除
End If
End Sub

この回答への補足

Wendy02さま 早速のご回答ありがとうございます。

ご丁寧なご回答いただき誠に申し訳ないのですが、今回は関数のみで処理したいのですが、何とかならないでしょうか?

説明不足で本当に申し訳ありません。
よろしくお願いします。

補足日時:2005/04/19 16:36
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

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

QMS-IME2010でローマ字変換ができない

いつもお世話になっています。

MS-IME2010で突然ローマ字変換ができなくなりました。
かなキーがロック状態になっているようです。

ひらがな、ローマ字変換のキーをおしてもだめですし、再インストールしてもだめです。
そのため、文書入力をする際にいちいちIMEを2007に切り替える始末です。
(2007にした場合はこのような問題はありません。)

ローマ字変換ができる方法はないでしょうか。
よろしくご教示ください。

OSはXp、パソコンの機種はヒューレッドパッカード、Probook4510sです。

Aベストアンサー

IMEのプロパティを確認し、ローマ字入力の設定になっていてかつ再起動をしても直らないならIMEを変えた方が良いですね。ATOKやGoogle日本語入力を使って見ては如何でしょうか?

Qエクセルで、=IF(A12="a",TRUE)は =A1="a"  ???

エクセルで、
=IF(A12="a",TRUE)

=A1="a"
と省略できるのですか?

やってみるとまったく同じようなのですが、いまいち不安です。

また、=IF(D4=TRUE,"OK!","No!")も、日頃=IF(D4,"OK!","No!")と略してますが、これも正しいんですよね?
気になったものですから確認させてください。

Aベストアンサー

こんにちは。maruru01です。

IF関数について、少し補足説明します。
IF関数は、No.1にもあるように、

=IF(条件式,真の場合,偽の場合)

という書式ですが、

=IF(条件式,真の場合)

と、偽の場合を省略することが出来ます。
ここで偽の場合は、FALSEという論理値を返します。
つまり、質問欄の1つ目の例に当たります。
なお、

=IF(条件式)

と、真の場合も省略することは出来ず、

=IF(条件式,,偽の場合)

と、空欄にすると、真の場合は数値の「0」を返すことになります。
ちなみに、偽の場合も、

=IF(条件式,真の場合,)

と、引数区切りのカンマだけ付けると、空欄と見なされて(省略とは異なる)数値の「0」を返します。

次に、条件式についてですが、
条件式は、

「左辺」+「比較演算子」+「右辺」

の書式になっているものを指します。
ここで、比較演算子とは、
「=、>、<、>=、<=、<>」
を指します。
条件式は、成立/不成立の結果、TRUE/FALSEという論理値を返します。
つまり、

=A1="a"

は、条件式の戻り値そのものを表示していることになります。
それに対して、IF関数の方は、条件式を判定した結果、真の場合と偽の場合をそれぞれ実行して表示しています。
その真の場合と偽の場合が、条件式の戻り値とちょうど一致しているということです。

さて、IF関数の第1引数は、通常は上記の条件式を指定しますが、実際はIF関数は第1引数を数値として判断しています。
その判定基準は、第1引数が、
0 → 偽の場合を実行
0以外 → 真の場合を実行
となります。
そして、第1引数が条件式の場合に限り、戻り値の論理値を、
TRUE → 1
FALSE → 0
と数値に変換して判定しているのです。
これが、質問欄の後半の2つの数式の挙動の違いの原因なのです。

=IF(D4=TRUE,"OK!","No!")

は、第1引数は「D4=TRUE」という条件式です。
この場合、戻り値は必ずTRUE/FALSE(=1/0)です。
(ただし、D4にエラーが入っている場合を除く)
一方、

=IF(D4,"OK!","No!")

の方は、第1引数は「D4」で、これはセルD4の値そのものです。
で、前述のように、IF関数は第1引数を数値として判定するので、このD4が数値(と論理値)以外の場合(文字列など)はエラーになります。
D4が数値(と論理値)の場合は、前述のように、「0」かそれ以外かで判定され、真/偽の場合のいづれかを実行して表示します。

このIF関数の第1引数が数値として判定されているということを利用した例が以下のようなものです。
例えば、A列に数値が1つでもあれば"OK"、1つもなければ(つまり0)"NG"を表示する場合、意味を考えれば、

=IF(COUNT(A:A)>0,"OK","NG")

ですが、これを、

=IF(COUNT(A:A),"OK","NG")

と、A列の数値の個数(COUNT関数の戻り値)そのもので判定することが出来るわけです。

以上、長くなりましたが、補足説明でした。

こんにちは。maruru01です。

IF関数について、少し補足説明します。
IF関数は、No.1にもあるように、

=IF(条件式,真の場合,偽の場合)

という書式ですが、

=IF(条件式,真の場合)

と、偽の場合を省略することが出来ます。
ここで偽の場合は、FALSEという論理値を返します。
つまり、質問欄の1つ目の例に当たります。
なお、

=IF(条件式)

と、真の場合も省略することは出来ず、

=IF(条件式,,偽の場合)

と、空欄にすると、真の場合は数値の「0」を返すことになります。
ちなみに、偽...続きを読む

Qいつもローマ字変換しているのですが変換にならずローマ字入力しか出来ない

いつもローマ字変換しているのですが変換にならずローマ字入力しか出来ない状態になるのですが
どうしてですか?どこで調整すればいいのですか?

Aベストアンサー

とりあえずは、
[カタカナ ひらかな/ローマ字]キー
または、
[半角/全角 漢字]キー
を押してみてください。

Aベストアンサー

書式>条件付き書式

セルの値が 次の値より小さい を選択
値は$B1とし、書式を設定。
設定したセルをコピーすればできませんか?

Qローマ字変換できなくなりました

bootcampでwindows vistaつかっています。急にローマ字変換ができなくなりました。MS-IME使っています。かな変換はなれていないので、ローマ字変換に戻したいのですが、どうすればよいですか?

Aベストアンサー

XPですと
(1)「言語バー」(「あ」とか「A」とか「般」とか表示されている部分)にカーソルを合わせ右クリック、「設定」をクリック
(2)「Microsoft IME standard」 を選択語、「プロパティ」をクリック
(3)「全般」の「入力設定」で「かな入力」を「ローマ字入力」に訂正後、「OK」をクリック
なんですが、VISTAではお役に立ちませんか?

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デフォルトでローマ字変換にしたい

Win2000, Office2000, IME2000を使用しています。
今までワード、エクセル起動するとデフォルトでローマ字変換入力モードだったのですが、急にひらがな変換(Aを押すと「ち」)がデフォルトになってしまい、いちいち
alt+カタカナ/ひらがな/ローマ字 キーを押してローマ字変換に戻しています。

元に戻す(ローマ字入力がデフォルト)方法はないでしょうか?

Aベストアンサー

IMEのプロパティで入力設定をローマ字にして保存してみたらどうでしょうか?

Q=IF(A2="",A1,A2)

初心者ですいません。
このやり方で、今日の日付になったときに、A2の表示する方法が
あったら教えてください。

Aベストアンサー

と言う事は、A2が空白である事はあり得ない訳ですから
式としては、

=IF(A3=TODAY(),A2,A1) 今日の日付と同じだったら
もしくは
=IF(A3<=TODAY(),A2,A1) 今日の日付と同じだったら
今日の日付より、過去かもしくは同じだったら

です。

Qかな変換がローマ字変換に変わる

私は、IMEで、かな変換なのですが
かな変換で、言葉を入力していると、途中から
ローマ字変換に変わっていたり、
書きはじめの最初から、ローマ字変換に
変わってしまったりします。
どのようにしたら良いでしょうか?

Aベストアンサー

不思議ですね。^^;

もしかして無意識に「前候補」の右となり「カタカナひらがな/ローマ字」(スペースの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ランキング

おすすめ情報