ミスチルの大名曲の数々が配信決定!! 31日間無料!!【PR】

エクセル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関数で偽ユーザー定義を適用、真ユーザー定義を適用しない。

あるセルに 「unsold」と入れた場合、そのまま「unsold」と入力され、
それ以外の数値を入れた場合 「”¥@”@」というユーザー定義を適用したいのですが、これをIF関数か何かでできますか?

Aベストアンサー

蛇足ですが、数値に「@」を含む「"\@"@」と言う書式を定義するのは正しくありません。

「"\@"@」の書式の意味は「表示する内容が文字列だった時は、その文字列に『\@』を追加して『\@文字列』と表示せよ」と言う意味になります。

この時、文字列以外の数値も、この書式に影響されてしまい「\@100」とか「\@10」とかって表示になっているので「数値の時のみ、思い通りに動いている、ように見えるが実は間違い」なのです。

あと、負数の時の「-」の位置が気に食わない場合は、適宜、第2セクションの書式を変更して下さい。

Qアメリカ英語で日付と名前刻印の書き方。

先日ニューヨークに住む友人が出産しました。
帰国時に記念品を渡そうと思うのですが、刻印(16字)に迷っています。
彼女は現地企業に勤め在米10年になり、知人はネイティブの方が殆どです。
知人に見せて、「?」って思われたらどうしようかと…。

11月13日生まれで太郎くんの場合。

TARO 13. 11. 2007
Taro 13, NOV, 2007
Taro Nov. 13, 2007
13/11/2007 Taro

…?
こういう記念品などの刻印の場合、どのような書き方が一般的でしょうか。

大文字小文字、カンマかピリオドかスラッシュか、
書き順(名前が先?日付?)も、分かりません…。

例えばスラッシュも間違いではないと思いますが、
日本では日付がスラッシュだとビジネス書類っぽいので
記念品などだとピリオドを使いますよね?アメリカでもそうでしょうか?

アメリカ英語事情に詳しい方、よろしくお願いします。

Aベストアンサー

こんばんは。 アメリカに長期で住んでいましたので、参考までに・・・
質問者さんの提示した中から、アメリカで一般的に表示する仕方は、

Taro Nov. 13. 2007 です。

こうしておけば、他の方に見せて「?」って事は防げると思います。
素敵な記念品が作れるといいですね♪

QExcel(エクセル) 名前定義をしたリストから、indirect関数を利用して選択入力できるようにしたいのですが… 

 次のようなことができず困っています。
 Sheet1とSheet2があり、Sheet2には"数字"、"英語"と名前定義された2つのリストがあります。Sheet1のセルA1には"数字"か"英語"どちらかの文字列を選択入力し、B1には、もしA1に"数字"を入力していればリスト"数字"から、もし"英語"を入力していればリスト"英語"から選択入力できるようにしたいのです。つまり、Sheet1のセルA1、B1の入力規則の種類をリストとして、元の値をそれぞれ、
   ・Sheet1!A1には=数字,英語
   ・Sheet1!B1には=indirect($A1)
としています。

質問(1)) ここまでなら何の問題もないようですが、問題はSheet2の"数字"と"英語"の参照範囲です。
   ・"数字"の参照範囲は=Sheet2!$A$1:$A$10,Sheet2!$C$1:$C$10
   ・"英語"の参照範囲は=Sheet2!$B$1:$B$10,Sheet2!$D$1:$E$10
と複数範囲におよんでいる場合、Sheet1!B1にはうまくリストが表示されません。解決法、およびなぜ表示されないのか、どなたかご教示お願いいたします。

質問(2)) Sheet2の"数字"と"英語"の参照範囲を
   ・=OFFSET(Sheet2!$A$1,,,COUNTA(Sheet2!$A:$A))
   ・=OFFSET(Sheet2!$B$1,,,COUNTA(Sheet2!$B:$B))
とした場合も同様にSheet1!B1にはうまくリストが表示されません。こちらの方も解決法と表示されない理由をお願いいたします。

 次のようなことができず困っています。
 Sheet1とSheet2があり、Sheet2には"数字"、"英語"と名前定義された2つのリストがあります。Sheet1のセルA1には"数字"か"英語"どちらかの文字列を選択入力し、B1には、もしA1に"数字"を入力していればリスト"数字"から、もし"英語"を入力していればリスト"英語"から選択入力できるようにしたいのです。つまり、Sheet1のセルA1、B1の入力規則の種類をリストとして、元の値をそれぞれ、
   ・Sheet1!A1には=数字,英語
   ・Sheet1!B1には=indirect($A1)
として...続きを読む

Aベストアンサー

(シート名を指定する必要がない)次のような手法は如何でしょうか?

Sheet2
   A    B    C     D
1  数字1 英語1   数字2 英語2
2   11 Andrew    31 Siew
3   12 Andy     32 Steve
4   13 Bob     33 Stu
5   14 Byron    34 Tibor
6   15 Carol    35 Tim
7   16 Chris    36 Tom
8   17 Clarence   37 Wellington
9   18 Dan     38 Wes
10   19 Dennis    39 William
11   20 Don     40 Wing

Sheet2 において
1.範囲 A1:D100 を選択
2.[挿入]→[名前]→[作成]を実行
3.“上端行”だけにチェック入れ
4.[OK]をクリック

Sheet1 において
5.セル A1 および B1 に[入力値の種類]を“リスト”とし、かつ、[元の値]を
  次とする[入力規則]を設定
  A1: 数字1,数字2,英語1,英語2
  B1: =OFFSET(INDIRECT(A1),,,COUNTA(INDIRECT(A1)))

(シート名を指定する必要がない)次のような手法は如何でしょうか?

Sheet2
   A    B    C     D
1  数字1 英語1   数字2 英語2
2   11 Andrew    31 Siew
3   12 Andy     32 Steve
4   13 Bob     33 Stu
5   14 Byron    34 Tibor
6   15 Carol    35 Tim
7   16 Chris    36 Tom
8   17 Clarence   37 Wellington
9   18 Dan     38 Wes
10   19 Dennis    39 William
11   20 Don  ...続きを読む

Q名前の検索をする心理状況

妻のパソコンをたまたま見たのですが
男の名前を2件ほど検索していたのが見つかりました。
私がよく知らない名前です

女性の心理としては名前の検索というのは
どのような状況なのでしょうか?

沢山いろんな人を検索している中で
男がいるなら分からないでもないのですが
ピンポイントで男性2人を検索されているのがわかりません。

妻の年齢は30才中ほどです

Aベストアンサー

2人分の名前なら、逆に浮気の心配はいらないと思います。

私はよく昔の彼氏の名前、検索します。。。
別に変な意味じゃないですよ。どうしてるのか全くわからないから、検索するのであって、今は何の関係もないからですし、連絡とろうと思ってのことじゃないですから。

そういえばどうしてるのかな~という検索。出てきたら、へ~と読むだけ、出なければそれまで。それくらいは許してあげてくださいな。
妻が夫のパソコンで変な画像見ちゃった時みたいなもんです。

※その他の皆さんの回答を読んで、もし自分が夫に問われたら、こう答えよう!と思ってしまいました。笑

Qエクセル IF関数の理論式にOR関数を使用したい

エクセル IF関数の理論式にOR関数を使用したいです。
エクセル初心者です。
エクセルを使って、さまざまな名簿を作っています。
その際、従業員の名前は分かるが、営業所を毎回調べなければいけません。
その為、例えば、B列に名前を入力すると、隣のA列に営業所名が自動的に表示されるようにするには
どうしたらいいでしょうか?
B列が空白の場合はA列も空白にしたいです。
営業所別の名前のデータは別枠に入力した状態です。
今、入力しているのが(例)ですが、、、

=IF(B1="","",IF(OR(B1=$E$1:$E$30),"A営業所",IF(OR(B1=$F$1:$F$30),"B営業所")))

しかし、これではB列に何かを入力しただけでA列に「A営業所」と表示されてしまします。
営業所は全部で4つあるので、まだ長い式になると思います。
分かりにくい説明で恐縮ですが、どうぞ、分かる方に教えて頂きたいです。よろしくお願いします。

Aベストアンサー

・IF(論理式,TRUEのときの値,FALSEのときの値)です。
論理式が成り立つとき(TRUEのとき)は、第二引数、成り立たないときは、第三引数で指定した値になります。
・OR(論理式1,論理式2)
論理式1または論理式2のどちらか、成り立つとき、TRUEになります。

記載頂いた式を少しずつ分解して説明します。
最初の「IF(B1="","",式①)」は、B1が空欄のときに空欄、そうじゃないときに式①の値になります。

式①についてですが、
IF(OR(B1=$E$1:$E$30),"A営業所",式②)
ここで、「B1=$E$1:$E$30」という式がおかしいです。(問題点)
”B1に入力した値が、$E$1:$E$30の範囲に一致する値があったら”という
論理式にしたいのでしょうか?(その前提で、以下に記載します。)

その場合、例えば、IF(COUNTIF($E$1:$E$30,B1),"A営業所",式②)とすれば良いです。
式②も同様ですね。

そこを修正すると以下の式になります。
IF(B1="","",IF(COUNTIF($E$1:$E$30,B1),"A営業所",IF(COUNTIF($F$1:$F$30,B1),"B営業所",式③))

式③には、B1の値が、$E$1:$E$30の範囲にも、$F$1:$F$30にも見つからなかった場合に、
何を表示するかを記載します。
例えば、”見つかりませんでした”というエラー文言だったり、"営業所不明"とかでしょうかね。

・IF(論理式,TRUEのときの値,FALSEのときの値)です。
論理式が成り立つとき(TRUEのとき)は、第二引数、成り立たないときは、第三引数で指定した値になります。
・OR(論理式1,論理式2)
論理式1または論理式2のどちらか、成り立つとき、TRUEになります。

記載頂いた式を少しずつ分解して説明します。
最初の「IF(B1="","",式①)」は、B1が空欄のときに空欄、そうじゃないときに式①の値になります。

式①についてですが、
IF(OR(B1=$E$1:$E$30),"A営業所",式②)
ここで、「B1=$E$1:$E$30」という式がおかしいで...続きを読む

Q皆さんは占いを信じますか?誕生日占い、名前占い、星座占い...いろんな占いがありますが。

皆さんは占いを信じますか?誕生日占い、名前占い、星座占い...いろんな占いがありますが。

Aベストアンサー

テレビでやる占いは信じません
生年月日でみてくれるひとがいます いままでいろいろと見てもらったことがすべてあたっているのでその人だけは信じてます

Qエクセルif関数で、複数のシートから情報を集約する方法if関数が最適なのかもわからないのですが、

エクセルif関数で、複数のシートから情報を集約する方法

if関数が最適なのかもわからないのですが、
以下の情報での情報集約方法を探しています。

複数シート(フォーマットは全て同じ。シート名は1.2.3.4.5~)

シートのA列に店舗番号がはいっています。
例 A1→100,A2→101,A3→102

シート1のA列に100が入力されている場合、
まとめシートに、シート1のC1が反映される。シート5のA列に150が入力されていた場合、まとめシートにシート5の該当セル(C151)が反映される。

上記のような数式を作りたいです。
どなたかご教授頂けますでしょうか?

宜しくお願いいたします。

Aベストアンサー

100とか150と言うのが店舗番号だろうか。
ならばシート名があるならそれを使って参照先を指定できる。
文字列から参照先を指定する場合、INDIRECT関数を使う。
すると、
=IF(シート1!A1=100,シート1!C1,"")
が、
=IF(INDIRECT(A1&"!A1")=B1,INDIRECT(A1&"!C1"),"")
のようになり、
=IF(ISERROR(MATCH(100,シート1!A:A,0)),"",シート1!C1)
が、
=IF(ISERROR(MATCH(B1,INDIRECT(A1&"!&A:A"),0)),"",INDIRECT(A1&"!C1"))
のようになる。

この場合、C1セルに相当する部分がどう紐付けされているのか不明なので、
そこは自身で「工夫してくれ」。
※条件(情報)が明らかに少なく、推測では答えられない。


もう一つアドバイス。
自身の手に負えない物件は早めにできないと申告すべき。

Q漢字3文字の名前

もうすぐ女の子を出産予定です。
漢字3文字の名前を考え中ですが、3文字の名前って、書くときに長すぎたりバランスが取りにくかったりするものでしょうか。
ちなみに苗字は漢字2文字です。
私自身は漢字2文字の名前なので良くわからなくて・・・。
ご自身のお名前が漢字3文字の方、お子さんのお名前が漢字3文字の方、よければコメントをお願いします♪

Aベストアンサー

私自身が三文字です。

苗字や、三つの漢字の画数にもよりますが、
一般的に三文字の漢字で特に不都合を感じたことはありません。
バランスもとりにくいと思ったことはないです。

ただ子供の頃から、もし将来結婚して苗字が変わるなら、
読みが三文字で漢字も三文字(例えば佐々木さんとか)の人とは
結婚したくないな~と、思っていました。苗字も名前もすべて一文字
ずつ書くのは、何となくですが、当て字というか、
ヨロシクを夜露四苦と書くようなイメージがあって・・・
(完全に主観的な感想です^^;)

以外に便利だと思うのは、たくさんの名前の中から自分の
名前を探さなければならないような場面(学生時代等はよく
ありました。名簿とか。)で、三文字の名前って、
すごく探しやすくて良かったです(笑)。
二文字の子が多い中で、三文字が並ぶとぱっと目が行きますから。

Qエクセル関数 IF関数・OR関数・ISNA関数

いつもお世話になります。

IF()と OR()と ISNA()を組み合わせて行数を返したいのですが、
セルの値が 0 ではない もしくは #N/A なら行数を、そうでなければスペースを返したいのです。

A列に関数が入っており、数値か#N/Aが返されています。

B2セルに、 =IF(OR(A2<>0,ISNA(A2)),ROW(),"")

と入力しB列最下行までオートフィルしたら、
A列が0の場合は行数が返りましたが、#N/Aの場合、、#N/Aと返され行数が返りません。


どこに問題があるか、わかる方教えてください。よろしくお願いします。

Aベストアンサー

ORでくくると、エラー値の場合、A2<>0が判定できないので


=IF(ISNA(A2),ROW(),IF(A2<>0,ROW(),""))

と分けたらどうでしょう?


人気Q&Aランキング