[[20061208180438]] 『IF関数とLOOKUP[?]の組み合わせについて』(あーちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『IF関数とLOOKUP[?]の組み合わせについて』(あーちゃん)

もし、SHEET1のA1とSHEET2のA1の数値が同じだった時は、SHEET2のA7:G11(セルを結合している)を表示する。また、
もし、SHEET1のA1とSHEET2のM14の数値が同じだった時は、SHEET2のI18:O26(セルを結合している)を表示する。また、

・・・と条件を5回設定したいのですが、関数が複雑で分かりません。
参照のシートが分かれていることと、VLOOKUP,HLOOKUPのようにリストになっていない条件からの検索、セルの結合されているものを表示することで、困り果てています。
どうか教えてください。お願いします。


 まずは、
「SHEET1のA1とSHEET2のA1の数値が
     同じだった時は、SHEET2のA7:G11(セルを結合している)を表示する。
     同じでない時は、"次"を表示する。」
 この式は作れますか?

 もっと簡単に考えると、同シート内で(D1とかに)
「A1とB1の値が同じならC1を、同じでないときは"次"を表示する」
 という式です。

 (HANA)

「A1とB1の値が同じなら」というIF関数が分からないのです。
これがそもそも作れなくて困っています。

すみませんが、教えてください。


論理式にA1="4500"

ちなみにA1には4500の数値が入っています。

真の場合 A7:G11
で合っていますか??


 >>IF関数が分からないのです。これがそもそも作れなくて困っています

 簡単な例で考えてみましょうか。
 もし、A1とA2が同じならばA3に、B1にある"同じ"という文字を表示させる、
 違ったら、B2にある"違う"という文字を表示させます。
 A3=IF(A1=A2,B1,B2)

 	[A]	[B]
 [1]	1	同じ
 [2]	2	違う
 [3]		

    (SS)


 そういうことなら、SSさんに便乗して・・・
 >A3=IF(A1=A2,B1,B2)
 この式を入力するときは
 A3セルを選択して、数式バー
(列見出しの上にある fx の横の白い四角い部分です)
 に
 1.=IF( まで入力(以下確定せずに)
 2.A1 を選択
 3.= を入力
 4.A2 を選択
 5., を入力
 6.B1 を選択
 7., を入力
 8.B2 を選択
 9.) を入力(ここまで来てEnter)
 ・・・という様に、直接セルを選びながら入力出来ますよ。
 実際に手を動かしながら、やってみて下さい。

 (HANA)


 A3=IF(A1=A2,B1,B2)
このまま数式を論理式に入れてみましたが、入力した数式は正しくありません。
と、エラーが出ました。

すみません。
こういう風に定義したらこんな風なことが出来るだろう。っていうことは想像できるのですが、実際に定義や関数を考えて触るのは、とても苦手です。


 A3のセルに =IF(A1=A2,B1,B2) と入力されたんですよね〜?
   (SS)

はい、そのまま入れてみました。
間違っていました??

 SSさんが戻ってくるまでのつなぎに・・・
 原点ですが、IF関数の書き方は分かりますか?

 (HANA)

もし、○○だったら××
もし、■■だったら☆☆
とか一般的なものだったら理解しているつもりです。


このデータをオフィスで使っているのですが、今日中に完成させてUPしないといけないのです。
SSさんって、まだまだ戻ってこられないのでしょうかね??

 たしかに、そのようなことが出来る関数なのですが・・・
 たとえば、SUM関数は =SUM(範囲)と書きますよね
 この括弧の中の書き方がIF関数に関して分かりますか?
 という事です。

 まずは、エクセルのヘルプをご覧下さい。

 SSさんですか?
 どうなんでしょうね〜。>SSさん(笑)
 私はいつでも退散する予定なのですが・・・。

 (HANA)

=IF(A1=A2,B1,B2)
これだったら、A1とA2が同じなら、A3にB1と表示する
もし違うならB2と表示する

ってことですよね?


 はい。その通りですよ。
   (SS)


あ!分かりました。
「SHEET1のA1とSHEET2のA1の数値が
     同じだった時は、SHEET2のA7:G11(セルを結合している)を表示する。
     同じでない時は、"次"を表示する。」
1番最初に教えてもらった、これできました!

で、もし”次”って出たら、さらに次の条件と比べてまた同じだったら表示、違ったら”次”にして・・・って感じでしょうか??


 そんな感じです。

 まずは5つのセルに5つの式を作って下さい。
 全ての式が完成したら、5番目の式を4番目の「次」としたところにコピペ。
 5番目の式をコピペした4番目の式を、3番目の「次」とした所にコピペ・・・
 とやっていけば、一つのセルで結果が出せる数式になると思いますよ。

 ・・・とここまで書いて於いて気づいたのですが
 もしかして、前から順番にどこかの条件がそろったらそれを表示→終了
 ではなく、条件がそろった所は続けて全て表示 させたいのですかね?
 上の方法は、前者のものですが・・・。

 (HANA)

 HANAさんと衝突〜。

 HANAさんがおっしゃってるのを、具体的な例で書いてみました。

 	[A]	[B]	[C]
 [1]	海	富士山	
 [2]		大井川	
 [3]		日本海	
 [4]		琵琶湖	

 とあった場合、C1セルに
 =IF(A1="山",B1,IF(A1="川",B2,IF(A1="海",B3,IF(A1="湖",B4,""))))
 と入れてみて下さい。
 A1に川とか海とか湖と入れると、C1にB列の文字が色々表示されます。
    (SS)

やっと理解できました。ありがとうございます!!

ただ、1つ別の問題が出てきました・・・

もし同じだったらこれを表示する。という結合しているセルを選択した時、
単純にリンクを張った状態でも元のセルの文字を反映できませんでした。

もしかして、Alt+Enter でたくさん文字を入れまくっているからでしょうか?


 SSさん、ごめんなさい&ありがとうございます。

 あーちゃんさん
 文字が反映できないのは、もしかしたら
[[20061205125814]]『なぜなの?』(ctc)
 こちらでみやほりんさんがご紹介の「マイクロソフトのサポート情報」
 が参考になるかもしれません。
 (関係ないかもしれませんが・・・・)

 (HANA)

 いえいえHANAさんこちらこそ、どうもです。
   (SS)

HANAさんありがとうございます。
リンクが張れないのは文字数が多いからかもしれないとやってみたのですが、
文字数を減らしてもみたのですが、セルを結合していることが原因のような気がします。

SSさんの具体例もありがとうございます。
今回の場合は、もう1つ条件が加わる感じです。

	[A]	[B]	[C]   [D]
 [1]	海	富士山	高い
 [2]		大井川	早い
 [3]		日本海	広い
 [4]		琵琶湖	大きい

もしA1に海と入れたら、B3の形容詞C3をD1に入れる。
といった具合です。
AとDはSheet1にあり、BとCはSheet2にある感じです。

BとCは上下、左右の隣り合わせのセルにあるわけではなく、別々の場所にあり、Cはセルを結合したものに書かれています。

ほんとうにややこしいことを言ってすみませんが、教えてください。
よろしくお願い致します。


 やっぱり文字数は関係なかったですか。
 「閉じられたブックで」って事なのでそんな気はしたのですが・・・。
 セルの結合を解除したら正しく表示されるのですか?

 そして、ご質問の件ですが 何がどうなっているのかさっぱり分かりません。
 「実際はこうこうで・・・」ではなく
 実際はどの様になっているのか教えて下さい。
 また、「どの様な理由で、ここに表示されているコレを表示」
 と言うご説明も併せてお願いします。

 (HANA)

今、コースメニューを使ったエクセルデータ作成しています。

コースメニューのお料理が載った「メニュー原本のファイル」、「提出用のファイル」と2つエクセルファイルがあります。
コースメニューは金額によって、いくつかパターンがあります。

先程の例でくと、A1にコースの金額を入れます。
ex:「提出用ファイル」のA1に”6000”と入力

A1とB3が同じだった場合
ex:「提出用ファイル」のA1の”6000”と
「メニュー原本ファイル」のB1”3000”、B2”4000”、B3”6000”、B4”8000”の内、B3”6000”が一緒だった場合

B3の関連のあるC3をD1に参照する
ex:B3の”6000”のメニュー内容はC3に書かれており、
D1にメニュー内容が貼り付けられる

というようにしたいのです。
ちなみにメニューはコースなので、文字が多く、1つのセルに入りきらない為、セルを結合して記入しています。(リンクを張る為に1つのセルに無理やり入れ込みました)

お分かりですかねぇ??


 う〜〜ん、何となく分かりますが・・・・
 エクセルで表にして、ここへコピペしてもらえませんか?
 SSさんの投稿のように。
 (文頭に半角スペースを入れると、改行がそのまま表示されますよ。)

 1つのセルに収まりきらないのは、列幅を広げるのでは駄目ですか?
 「2つのファイル」と言うのは、ブックが2つですか?シートが2つですか?

 ごめんなさい、レスは夜になります・・・。
 (HANA)

コピーペーストをして今までは使っていたのですが、コピペ間違いと手間を手間を減らすために関数を入れたいと考えています。

1つのセルに入れたのは、今回参照リンクを張るためにそうしました。
元々は、

A1”3000” B1”4000”  
A2 前菜    B2 前菜
A3 スープ   B3 スープ
A4 パスタ   B4 パスタ

といった具合に、それぞれのセルに入れていたのですが、セルが分割されているとリンクを張れないのでセルを結合して入れました。

列幅を広げて見えやすくするのは、かまわないのですが本来の意図と違ってくるので・・・


 このような現象?
[XL2003] 特定のシート名で結合セルの外部参照が正しく行えない
http://support.microsoft.com/default.aspx?scid=kb;ja;JP410985
 
>セルが分割されているとリンクを張れないのでセルを結合して入れました。
結合セルにまとめなくても検索関数で出来そうですが。
上記のレイアウトを生かすなら、HLOOKUP関数か。
(みやほりん)(-_∂)b


 なさりたいことの確認ですが、提出用ファイルA1に「6000」と入っているときに
 メニュー原本ファイルのB1:B4から提出用ファイルA1に入力されている「6000」という数字を探すと
 B3に存在するので、同じ行の隣の列C3の内容を、提出用ファイルのD1に表示したい。
 ということですか?

 もしくは、たとえば 最初に入力なさっていたように
 メニュー原本ファイルに
	[A]	[B]
[1]	3000	4000
[2]	前菜3	前菜4
[3]	スープ3	スープ4
[4]	パスタ3	パスタ4
 の様に入力されていて、提出用ファイルA1に4000と入力されていた時
 提出用ファイルに
	[A]	[B]	[C]	[D]
[1]	4000			前菜4
[2]				スープ4
[3]				パスタ4
[4]				
 の様に表示されれば良いですか?

 前者なら、VLOOKUP関数。後者ならHLOOKUP関数が良さそうです。

 ・・・リンクを張るのと、数式で表示させたいのは又別の問題かな?

 (HANA)

 >コピーペーストをして今までは使っていたのですが、
 えっと・・「サンプルをコピペで投稿してほしい」
 というお願いでした。(笑)
 文章だけって、難しいですねぇ。

 実際の原本ファイルは、金額の隣にメニュー という配置ではないのですよね。
 そこに規則性は無いのですか?
 (HANA)

色々アドバイス頂いてありがとうございます☆
実際の金額の隣にメニューがないので、VLOOKUPもHLOOKUPも使えないのです。

原本ファイルの入力の規則性は、全くない訳ではありませんが、条件に入れられるほどきちんとはしていません。
E3 に「2000円」
A7:G11に「メニュー内容」

M3 に「3000円」
I7:O12に「メニュー内容」

E14 に「6000円」
A18:G25に「メニュー内容」

M14 に「7500」
I18:O26に「メニュー内容」
・・・・コースはまだまだ、たくさんあります。

参照元の1つのセル(ex:A7:G11)の中には、ざっと400文字くらい日本語とイタリア語が入っています。

提出用ファイルのB3に金額を入れ、メニュー表示させたいセルは、A13:K19です。

こんな感じで、文章だけですが分かりますでしょうか?


もう1度入力したい事の確認をさせてください。

メニュー原本ファイルに

	[A]	[B]
[1]	3000	4000
[2]	
[3]
[4]   前菜3	前菜4
[5]	スープ3	スープ4
[6]	パスタ3	パスタ4
[7]        デザート4
[8]
[9]	 6000	7000
[10]   前菜6	前菜7
[11]   スープ6	スープ6

の様に入力されていて、提出用ファイルA1に4000と入力されていた時
提出用ファイルに

	[A]	[B]	[C]	[D]
[1]	4000			
[2]				
[3]				
[4]	
[5]	    前菜4
[6]	    スープ4	
[7]          パスタ4

と表示したい感じです。


 衝突しましたが、そのまま載せます。

 現在の問題点としては
 「元のセルの文字を反映できませんでした。」
 ここですか?
 それならば、いくら数式を頑張っても
 どうしようもない気がします。

 みやほりんさんご紹介のリンク先(特定のシート名で云々)
 の事象には当てはまりませんか?
 もしかしたら、見えてないだけかもしれません。
 LEN関数で双方の文字数を数えてみてはどうですか?

 何にせよ、一覧表を作った方がいいような気がしますが・・・。

 (HANA)

文字数は少ないもので、130
多いもので、441文字でした。

みやほりんさんのシート名を”Sheet Name ”にする方法もチャレンジ中です。
これってSheet Name にしないといけないんでしょうかねぇ?
シート名もお客様名を入れるよう決まりがあるので、もし”Sheet Name” というシート名にして表示するのであれば、難しいかもしれません。

間違って解釈していたら、すみません。


 いやいや、確認するのは
• 参照先のシート名、もしくはファイル名に空白が含まれている 
• 参照先のシート名の先頭に数字が使用されている 
• 参照先のシート名に、以下のいずれかの記号が含まれている
      ! + - = ; # $ @ % & ' " ~ ^ | ( ) { } < > , 
 の3点で、その確認方法は
「表示したいシートのセル A1 を選択し、 = (イコール)を入力後、
  参照したいシートの結合セル をクリックし、Enter キーで確定します。」
 ですよ。
 たとえば原本ファイルの結合セル(A7:G11)を選択したときに
(「原本ファイル」ってシート名ですか?)
 ='原本ファイル'!A7 となれば、事象には当てはまらず
 ='原本ファイル'!A7:G11 となれば、事象に当てはまっています。

 もしくは、正しく参照されないシートの名前を「AAA」とか言う
 単純なものに変えてみて、正しく参照出来る様になるかどうか確認して下さい。

 (HANA)


 私からの確認&お願いです。
 1.セルの結合は「リンク」の関係で解除出来ないのですよね?
    解除できるなら、提示して頂いたサンプル通りだと
    名前の定義が使えそうですよ。
    解除出来ないのなら、まず「反映されるようになる方法」を探して下さい。

 2.上で一度書きましたが
   「2つのファイル」と言うのは、ブックが2つですか?シートが2つですか?

 3.「実は・・・」なんて事があるなら、今の内に開示して於いて下さい。

 (HANA)

 ='原本ファイル'!A7:G11 となれば、事象に当てはまっています。
セルを結合しているので、どうしてもA7:G11となるのでモロ当てはまりますね。 とうぜん表示されないですね。ありゃ。よく見ていなくってすみません。

1.>セルの結合を解除することは可能です。
本来は「再度入力したいことの確認」の通りに入力していたのですが、リンクを張るために1つのセルに入力していないとリンクが張れないと思い、今はセルを結合して1つのセルに全てのメニューを記入しています。

名前の定義を使うとしたら、どんな方法でしょうか?

2.「2つのファイル」は2つのシートですね。すみません。
原本のシートには「’06冬メニュー価格別」と入っており、
提出用のシートにはお客様名が入っています「田中様」とかです。

3.もうないはずです。


 =IF(Sheet2!A1=Sheet1!A1,Sheet2!A7:G11,if(              ))
                                  ↑      ↑
                   1      2
1これは設定できません           2次のIF文を入れる個所
Sheet2!A7ですよ
(ハナ)

ステキ!!セルの結合をしている場合、A7だけで表示できるんですね!!
これが原因のような気がしてきました。

ありがとうございます。
ちょっと触ってみます・・・

セルが結合されていない場合の、名前の定義を使う方法も教えていただけませんでしょうか?


 最初にお願いなのですが、ご自身の発言の最後には、
 ご署名をお願いしますね。

 >’06冬メニュー価格別
 最初のマークは、問題の記号の中に含まれていますよ。
 それで、セル参照が上手く行かないのでしょう。

 名前の定義は、メニュー・挿入→名前→定義 から行います。
 (思い違いをなさらないように補足ですが、名前の定義は
   セルの結合をしていても使えますよ。)

 たとえば、3000円のメニューに名前の定義をする場合
 メニュー・挿入→名前→定義

 名前(W)
 [★3000    ]
  ================

  −−−−−−−−
 参照範囲(R)
  [A4:A6         ]←セル番地を選択したら、シート名とセル番地が入ります。

 として [ 追加(A) ] として下さい。
 名前が定義出来るので、続けて他のメニューにも名前を付けます。

 名前(W)
 [          ]
  ================
   ★3000           こんな感じになると思います。
   ★4000
   ★5000
   ★6000

  −−−−−−−−
 参照範囲(R)
  [              ] 

 提出用のシートのA1に金額を(数字のみ)で入れるとすると
 B5=IF(COUNTA(INDIRECT("★"&$A$1))<ROW(A1),"",INDEX(INDIRECT("★"&$A$1),ROW(A1)))
 として、必要行(最大メニュー数)下にコピーしておいて下さい。
 A1の数字を変更すると、表示されるメニューも変わると思います。

 最後に一つだけ付け加えておきます。
 シート名を教えていただいて思ったのですが
 シートの使い方は見直した方が良さそうですよ。

 (HANA)

 Sheet2!A7:G11  範囲指定
 Sheet2!A7   セル指定
 Sheet2!A7:G11  の範囲でセル結合の場合 この範囲内はSheet2!A7(1セル)になりますよ。
結合されたセルは1セル扱いで そのセル選択したとき名前ボックスに表示されます。
(はる)


名前の定義を使う方向で考えています。

B5=IF(COUNTA(INDIRECT("★"&$A$1))<ROW(A1),"",INDEX(INDIRECT("★"&$A$1),ROW(A1)))
これがちゃんとよく分かっていなくて、いまいち使いこなせません。

1番最初に教えていただいた、
「SHEET1のA1とSHEET2のA1の数値が

     同じだった時は、SHEET2のA7:G11(セルを結合している)を表示する。
     同じでない時は、"次"を表示する。」

を使って、
同じだった時は、Sheet「06コース冬価格別」のA7を表示する。
同じでない時は、”次”を表示する。
ようにし、あとは”次”の所に=IFからをコピーして、参照箇所を変えて入力してみたのですが、入力した数式は正しくありません。と出てしまいます。

範囲指定をA7とだけにし、シート名の「’」も抜いて「06コース冬価格別」としてみましたが、上手くいきませんでした。

名前の定義は設定できました。
名前を「お料理3000円」とか、「お料理4000円」とかに設定し、参照を
「お料理3000円」はA7:A11に
「お料理4000円」はA7:A12にしています。

もしこの定義を活用できれば・・・と思ったのですが、
同じだった時は、定義の「お料理3000円」を表示する・・・とかって、出来ますでしょうか?

(あー)


=IF(B3='06コース冬価格別'!E3,"'06コース冬価格別'!A7:A11,"=IF(B3='06コース冬価格別'!M3,"'06コース冬価格別'!I7:O12,"=IF(B3='06コース冬価格別'!U3,"'06コース冬価格別'!Q7:Q11,"=IF(B3='06コース冬価格別'!E14,'06コース冬価格別'!A18:A25,"=IF(B3='06コース冬価格別'!M14,'06コース冬価格別'!I18:I25,"))))

IF関数だけの定義で行くと、こういう関数で間違っていないでしょうか??
答えは「FALSE」と出てしまいましたが・・・

(あー)


 う〜〜ん、難しいですね。
 その理由は「シート構成がころころ変わっている」と言う所にもあるのですよ。
 結局、現在のシート名、どこのセルに何がどの様に入力されているのか
 また、一覧で表示したいシートは、どのセルに何を入力して何の値を持ってきたいのか
 イメージがつかめません。

 実際に即したサンプルを載せて今一度ご説明下さい。
 私がそれが分からないことには、やり方の提案も出来ません。

 (HANA)

 =IF(B3='06コース冬価格別'!E3,"'06コース冬価格別'!A7:A11,
"=IF(B3='06コース冬価格別'!M3,"'06コース冬価格別'!I7:O12,"
=IF(B3='06コース冬価格別'!U3,"'06コース冬価格別'!Q7:Q11,
"=IF(B3=  ・・・・・・・
数式が成立しない  ですね。(ハナ)

 ↑上の方、ご署名をお願いします。

 (HANA)

 HANAさん お疲れさまーー。
ちょっとだけ、お邪魔します。
と言っても、流れも内容もよく分らないので、最後にあーさんが書かれた式に関してのみですが・・・

 A7:A11等の部分は、セルの結合範囲と思いますので、
こんな感じ(↓)の式の意図なのでしょうか? ※改行してます。
 =IF(B3='06コース冬価格別'!E3,'06コース冬価格別'!A7,
IF(B3='06コース冬価格別'!M3,'06コース冬価格別'!I7,
IF(B3='06コース冬価格別'!U3,'06コース冬価格別'!Q7,
IF(B3='06コース冬価格別'!E14,'06コース冬価格別'!A18,
IF(B3='06コース冬価格別'!M14,'06コース冬価格別'!I18,"該当なし")))))

 FALSEは、出ないと思いますが、なぜFALSEになったのかが不思議???
EXCEL君に嫌われると思ってた。。。
理由は、多分後ろ全てがTRUEの返り値としての文字列で、FALSEの指定が無い という事でしょうか?
(sin)

 σ(^o^;)もおじゃましま〜す^^
 
 >理由は、多分後ろ全てがTRUEの返り値としての文字列で、FALSEの指定が無い という事でしょうか?
 そのようですよb
 σ(^o^;)も、あーさんが記入した式をそのままコピペして気が付きましたが、、、
 
 =IF(B3='06コース冬価格別'!E3,"'06コース冬価格別'!A7:A11,"=IF(B3='06コース冬価格別'!M3,"'06コース冬価格別'!I7:O12,"=IF(B3='06コース冬価格別'!U3,"'06コース冬価格別'!Q7:Q11,"=IF(B3='06コース冬価格別'!E14,'06コース冬価格別'!A18:A25,"=IF(B3='06コース冬価格別'!M14,'06コース冬価格別'!I18:I25,"))))
 ~~~~~~~~~~~~~~~~~~~~~~~~1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2 ~~3
1.IF関数の理論式
2.真の場合 : 全て「"」でくくっているため、文字列
3.偽の場合 : 何も入力なし
 
 よって、理論式で「偽」が返ると「FALSE」になりますねb
 
 (キリキ)(〃⌒o⌒)b

 みなさん、お疲れさまです。
 ただでさえ長いスレに、全く関係ない話を入れて恐縮なのですが

 To ハナさん
   貴方はご自身の文章が特徴的であることをもっと知っておいた方が良いと思いますよ。

 以上。では、あーさんに申し訳ないので

 To あーさん
   ある関数を使って式を作る時は「これを使ってみよう。取り敢えず作って見よう」
   だけではなく、「その関数を使うことが妥当かどうか」の検討も必要ですよ。
   (その関数の使い方を知ることも です。)

   また、「=IF(SHEET1!A1=SHEET2!A1,SHEET2!A7,"次")」という式が求める結果を
   表示するようになってから、"次"の所に、その次に計算したい式を入れるのですよ。
   (今の数式は第一段階をクリアしてないと思いますが。)

   そして、入れ変える時は たとえば、 A1=A2+A3の時 B1=A1+A4=(A2+A3)+A4ですよね?
   セル内で計算させるためには先頭に「=」が必要ですが、数式内に入れるときは
   =以降をコピーして入れて下さい。また、計算させたいのですから""で囲ってはいけません。
   "次"と表示されたとき、隣のセルに入力された「=数式」を行いたい なら
   ×「=IF(SHEET1!A1=SHEET2!A1,SHEET2!A7,"=数式")」
   ×「=IF(SHEET1!A1=SHEET2!A1,SHEET2!A7,"数式")」
   ○「=IF(SHEET1!A1=SHEET2!A1,SHEET2!A7,数式)」
   の様にします。

   もう一つ、「シート名に問題がある」という事はご理解いただけたのではないのですか?

   と、いろいろ書いてますが、あーさんのなさりたいことが出来るようになるために
   私も考えますので、「実際に即したサンプルを載せて今一度ご説明下さい。」

 (HANA)


みなさん、色々とありがとうございます。

もう一つ、「シート名に問題がある」という事はご理解いただけたのではないのですか?
>なぜ問題があるのでしょうか?
名前を付けるのに、’や:がなければ参照できる。とは分かったのですが、それ以外にも何かまだ問題がありますか??

sheet名「田中様」が提出用のsheetです。
 A    B    C    D    E・・・
3お料理 6000
4
5


13・・・
                             K19

A13からK19まではセルが接合されており、ここにB3を元に参照したデータ(6000なら、6000円のお料理の内容)を参照させたいと思っています。
参照元は、
sheet名「06コース冬価格別」が参照用のsheetです。

  A  B  C  D    E   F・・I J・・ L   M・・Q・・T   U
3       お料理  2000        お料理 3000      お料理 4500
〜
〜
7前菜               I7前菜        Q7前菜
8スープ               スープ        スープ
9魚                 パスタ        パスタ
10デザート              メイン        メイン
11カフェ               デザート       デザート
12                  カフェ        カフェ
13
14       お料理  6000        お料理 7500 
〜
〜
18前菜               I18前菜
19スープ                スープ
20パスタ                パスタ
21魚                  魚
22肉                  肉
23デザート               ご飯物
24カフェ                デザート
25                   カフェ

 A〜G、I〜O、Q〜Wは横の配置を”メニューを選択範囲内で中央”にしています。

 sheet名「田中様」のB3が6000だった場合、sheet名「06コース冬価格別」のE14の6000の内容、A18からA24に書かれているメニューの内容を参照するようにしたいと思っています。

 なお、以前にセルにたくさんのメニューの文字を羅列していると記入していた時は、
A7からA11にかかれているメニューをA7からG11でセルを結合して、1つのセルに記入していました。

 紹介したリンク先の現象は良くご理解いただけていないようで。
>なぜ問題があるのでしょうか?
http://support.microsoft.com/default.aspx?scid=kb;ja;JP410985
では次のようなくだりがあります。
「特定のシート名を使用した場合、結合セルの外部参照式が正しく設定されず、
参照するセルによっては正しい結果が返らない現象」の原因のひとつとして、
「参照先のシート名の先頭に数字が使用されている」があげられています。
 
sheet名「06コース冬価格別」はこれに該当するとお考えになれませんか?
(みやほりん)(-_∂)b

「コース06 冬価格別」に変更しました。
先頭に数字だと参照しないのですね。ありがとうございます。
勉強になりました。

(あー)


 あぁぁ、衝突しちゃいました。
 書き直すのが面倒なのですみませんがもう一度元のシート名に戻して下さい。
(セルを結合していなければ問題ないと思います。今は選択範囲内で中央表示 ですよね?)
 まだセルの結合をしているなら、以下の式のシート名を新しい物に変更して下さい。

 以下衝突前の文章です。

 確かに
 >>’06冬メニュー価格別
 >最初のマークは、問題の記号の中に含まれていますよ。
 >それで、セル参照が上手く行かないのでしょう。
 この書き方だけでは不適切でしたね。ごめんなさい。
 上にも書き出しているので再度載せませんが、
 確認する事は3点あります。

 現在は参照シートでセルの結合はしていないのですよね?
 それならもう一度新しくIF関数を作ってみてはどうですか?
 先ほどFALSEと表示されてしまった式は、変なところに「"」が入ったりしています。
 あとは、参照先が「'06コース冬価格別'!A7:A11」範囲になってたり・・・。 
 一つ上で書いた「入れ変える時」の入れ替え方を参考にして
 もう一度組み合わせてみて下さい。

 一応、A13に入力する式を載せます。(sinさんのとほぼ同じですが・・・)
=IF($B$3='06コース冬価格別'!$E$3,'06コース冬価格別'!A7,
   IF($B$3='06コース冬価格別'!$M$3,'06コース冬価格別'!I7,
   IF($B$3='06コース冬価格別'!$U$3,'06コース冬価格別'!Q7,
   IF($B$3='06コース冬価格別'!$E$14,'06コース冬価格別'!A18,
   IF($B$3='06コース冬価格別'!$M$14,'06コース冬価格別'!I18,"")))))&""
 ↑5行を一度にコピーして、A13の数式バーに貼り付けた後
 A19までコピーして下さい。
 表示されると思いますが、私はおすすめできません。

 ・・・ここまで書いてよく見ると「名前の定義」の方法で行き詰まって
 関数の方に帰ったのですね?
 ここから、「名前の定義」の続きです。
 >名前を「お料理3000円」とか、「お料理4000円」とかに設定し、
 >参照を「お料理3000円」はA7:A11に「お料理4000円」はA7:A12にしています。 
 という事ですので、金額をB3セルに数字のみ入力するとして
 A13からメニューの内容を表示したい場合は、A13に
=IF(COUNTA(INDIRECT("お料理"&$B$3&"円"))<ROW(A1),"",INDEX(INDIRECT("お料理"&$B$3&"円"),ROW(A1)))
 を貼り付けて、下にコピーして下さい。

 もし上手く行って、前の数式と見比べても何故表示されるのかよく分からなければ
 そのように仰って下さい。
 解説を試みようと思います。

 (HANA) 


はなさん、長期にわたりありがとうございます。

=IF($B$3='06コース冬価格別'!$E$3,'06コース冬価格別'!A7,

   IF($B$3='06コース冬価格別'!$M$3,'06コース冬価格別'!I7,
   IF($B$3='06コース冬価格別'!$U$3,'06コース冬価格別'!Q7,
   IF($B$3='06コース冬価格別'!$E$14,'06コース冬価格別'!A18,
   IF($B$3='06コース冬価格別'!$M$14,'06コース冬価格別'!I18,"")))))&""
入力した所、ちゃんと探して参照表示されました!!
嬉しくて、感動してしまいました。ありがとうございます。
さっきから小躍りをしている状態です。本当にありがとうございます。

=IF(COUNTA(INDIRECT("お料理"&$B$3&"円"))<ROW(A1),"",INDEX(INDIRECT("お料理"&$B$3&"円"),ROW(A1)))
を入力すると、#REF!と出てきました。
おっしゃられているように見比べることができません。
これはなぜでしょうか??


 IF関数の方はうまくいったようですね。
 ただ、考え方は最初の「"次"と表示させて・・・」
 と同じなので、もう一度作ってみて下さいね。
 今度はきっとうまくいくと思いますよ。
 もしもうまく行かないときは、私の載せた式と見比べて
 どこが違うのか確認して下さい。
 ちょこちょこ小細工もしてますので。

 名前の定義の方はうまく行かないみたいですね。
 原因を探るためにやりとりをしたいと思います。
 細かく確認して行きますので、もう少し続きそうですが
 もしよろしければ、結果を教えて下さい。

 まず・・・名前の定義の方法ですが
 >名前を「お料理3000円」とか、「お料理4000円」とかに設定し、
 >参照を「お料理3000円」はA7:A11に「お料理4000円」はA7:A12にしています。 
 参照先は、お料理の名前が入力されているセルを指定して下さいね。
 2000円の料理は$A$7:$A$11、3000円の料理なら$I$7:$I$11 ですよね。
 セル範囲を選択したら$とシート名が付いて表示されるので、
 それはそのままでどんどん定義していって下さい。

 それが出来たら、個人用シートのF3に先ほど定義した名前の一つ「お料理3000円」
 と入力して下さい。
 F4に =INDIRECT(F3) としてEnterを押すとどうなりますか?
 メニューシートのI7の内容が表示されると思いますが・・・。
 (HANA)

 To(HANA)さんへ

 >To ハナさん
 >貴方はご自身の文章が特徴的であることをもっと知っておいた方が良いと思いますよ。
 個性があっていいのでは
 きータッチが遅いもので上記(HANA)さんのレスなら30分かかるかな
 要点1発ですね。ハナ


それが出来たら、個人用シートのF3に先ほど定義した名前の一つ「お料理3000円」 と入力して下さい。 F4に =INDIRECT(F3) としてEnterを押すとどうなりますか? メニューシートのI7の内容が表示されると思いますが・・・。

HANAさん、やはり#REF!と出ます。

個人用シートのF3に先ほど定義した名前の一つ「お料理3000円」 と入力して下さい。 実際の提出用シートには「お料理3000円」と入力することはないのですが、今回は試しで入れる感じでしょうか?


 	A	B	C	D	E	F	G	H	I
1		お料理  							
2	2000		3000		4500		6000		7500
3									
4									
5	前菜		I7前菜		前菜		前菜		前菜
6	スープ		スープ		スープ		スープ		スープ
7	魚		パスタ		パスタ		パスタ		パスタ
8	デザート		メイン		メイン		魚		魚
9	カフェ		デザート		デザート		肉		肉
10			カフェ		カフェ		デザート		ご飯物
11							カフェ		デザート
12									カフェ
表をリストとして作り変えたら 検索もしやすくなると思いますよ.
(())


 =IF($A$16="","",INDEX($A$5:$I$12,ROW(A1),MATCH($A$16,$A$2:$I$2,0)))&""
このような数式でけんさくできますよ。
(())

 提示された表でも(列数が同じ)”お料理  2000”を2000で検索するような方法で
=IF($A$16="","",INDEX($A$5:$I$12,ROW(A1),MATCH($A$16,$A$2:$I$2,0)))&""
の数式に手を加えれば できますが
 =LOOKUP($A$13,$A$2:$I$2,A5:I5)&""
でも

↑ありがとうございます。
フォームが既に決まっているので、上記のような表にはできないのです。

(あ−)


 >3       お料理  2000        お料理 3000 お料理 4500
この列がはっきり読み取れないんのですが
 =LOOKUP($A$13,$A$2:$I$2,A5:I5)&""  の数式でイけそいですね。
2段なら
 =IF(A$20<50,LOOKUP($A$20,B$1:H$1,A3:G3),LOOKUP($A$20,B$11:H$11,A13:G13))$""

	A	B	C	D	E	F	G	H
1		20			30			45
2								
3	a			q			w	
4	s			w			s	
5	d			e			e	
6	f			r			d	
7								
8								
9								
10								
11		50			60			
12								
13	h			m				
14	g			n				
15	f			b				
16	d			v				
17								
18								
19								
20	45		w					
参考ですので値は違いますが
  (PPP)


 そうです。ためしです。
 念のため名前の定義のボックスから、定義した名前をコピペしてください。
 そのセルを参照にしてINDIRECT関数ですよ。

 やっぱり上手く行かないなら、新しいブック  新しいシートの
 A1セルに「あ」を入力。
 A1の名前を「内容」と定義して
 B1に「内容」と入力。
 C1に「=INDIRECT(B1)」
 としたら、どうなりますか?

  (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.