こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル2003の計算式

エクセル2003を使用してます。計算式が分からないのですが、下記のようなことが出来るものはありますか?

B1セルに たまご と入力すると
A1セルに ゆで
A2セルに かたゆで
A3セルに なま ・・・・
と出てくるようになってます。
入力する文字は『たまご』以外にも『りんご』などがあって入力する文字によってA1~A2セルに出てくるものが異なります。

B1セルに たまご(りんご他) を入力
B2セルに 1 (個数)と入力した場合のみ
上記と同じようにA1~A2セルが出て、B2セルに個数を入れない場合はA1~A3セルは何も出てこないようにする計算式はありますか?

投稿日時 - 2009-07-09 11:00:00

QNo.5110889

すぐに回答ほしいです

質問者が選んだベストアンサー

No.1です。

A1セル=IF(B2="","",VLOOKUP(B1,Sheet2!A3:AH28,3,FALSE))
A2セル=IF(B2="","",VLOOKUP(B1,Sheet2!A3:AH28,7,FALSE))

C1セル=IF(B2="","",VLOOKUP(B1,Sheet2!A3:AH28,4,FALSE))
C2セル=IF(B2="","",VLOOKUP(B1,Sheet2!A3:AH28,8,FALSE))
D1セル=IF(B2="","",VLOOKUP(B1,Sheet2!A3:AH28,5,FALSE))
D2セル=IF(B2="","",VLOOKUP(B1,Sheet2!A3:AH28,9,FALSE))

IF文で、B2が空白なら、空白を表示、そうで無い場合は元の式を実行しています。
エラーとなった式と見比べて見てください。

投稿日時 - 2009-07-09 17:09:46

お礼

再度の回答ありがとうございます。

ご丁寧に式を提示していただき、大変助かりました。
ありがとうございましたm(_)m

投稿日時 - 2009-07-13 09:40:22

ANo.7

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.8

こんばんは!
No.4・6です。

今一度質問内容と補足を読み返してみて
VLOOKUP関数の意味を確認してもらいたくて顔を出しました。

例えば、補足にある
A1セル=VLOOKUP(B1,Sheet2!A3:AH28,3,FALSE) は

B1のデータをSheet2のA3~A28(1列目)の中から拾い出し、
それを参照して一致した行の3列目にあるものを返す
という意味ですので、

実際はSheet2のデータをそんなに広く範囲指定しなくてもいいのではないでしょうか?

補足だけをみれば、9列目(I列)までで充分かと思います。
=VLOOKUP(B1,Sheet2!A3:I28,3,FALSE) ← これです。

AH列と言えば34列目になるはずですので、
そこまでデータが入っているのでしょか?

元データがどのような配列になっているか分からないので
憶測で回答しては失礼なのですが、
なんかVLOOKUP関数のデータ範囲と参照範囲が違うような感じがしましたので、
何度も顔を出してしまいました。
どうもごめんなさい。m(__)m

投稿日時 - 2009-07-09 22:09:02

お礼

再度の回答ありがとうございます。
大変助かりました。
ご提示していただいた式で出来ました。ありがとうございます。

ご丁寧に解説もありがとうございます。勉強になります!
補足で書いている以上に表示したいものがありまして…。データは230行でAH列までぎっしり入ってます(^^;)
その中からsheet3にはこのデータとこのデータが出る、sheet4にはこっちのデータが出る…というような感じになってます。

投稿日時 - 2009-07-13 10:02:17

ANo.6

No.4です。
何度もごめんなさい。

No.3さんの補足を拝見させてもらいました。

元の計算式も絶対参照にしないとエラーになると思います。
(コピーすると他のSheetも同じ配置でセルが動いてしまいます)

A1セル=VLOOKUP(B1,Sheet2!$A$3:$AH$28,3,FALSE)
A2セル=VLOOKUP(B1,Sheet2!$A$3:$AH$28,7,FALSE)

C1セル=VLOOKUP(B1,Sheet2!$A$3:$AH$28,4,FALSE)
C2セル=VLOOKUP(B1,Sheet2!$A$3:$AH$28,8,FALSE)
D1セル=VLOOKUP(B1,Sheet2!$A$3:$AH$28,5,FALSE)
D2セル=VLOOKUP(B1,Sheet2!$A$3:$AH$28,9,FALSE)

のようにしてみてください。

尚、前回も書きましたが、
セルを範囲指定した後に、F4キーを押せばいいのですが、
F4キーを押すたびに
$B$1:$B$2 → B$1:B$2 → $B1:$B2 → B1:B2

という具合に変化していきます。

すなわち、行・列を絶対参照 → 行のみ絶対参照 → 列のみ絶対参照 → 相対参照

という感じです。

以上、今度はエラーが出ないことを願っています。

どうも長々と失礼しました。m(__)m

投稿日時 - 2009-07-09 17:08:24

ANo.5

エクセル初心者らしい。
質問のしたいことが不明瞭だが
>。計算式が分からないのですが
計算式の問題では無いだろう。エクセルの関数式は値を1つしか返らない。B1に1つー>A2以下数個では何か貴下家がいると思わないと。
実は「抜き出し問題」なんだろう。
B1に条件を入れて、他に作っっておいたデータで条件にあうデータを抜き出して表示したいと、質問はなるべきでは。
B1セルにたまご
すると別列などに
F列 G列
たまご ゆで
たまご なま
たまご 温泉
たまご 固ゆで
りんご 青森産
りんご ふじ
りんご 王林
りんご 焼き
^・・
のようなデータを作っておき
F列がB1の文字列と等しいものを全て抜き出す。
エクセルの関数式では、抜き出し問題はふえてです。
===
それか、もうひとつ可能性の有るのは
A列に入力規則を設定し、B1にたまごと入れると、
 ゆで
 なま
 温泉
 固ゆで
の入力候補を出す質問は良くある。
ーー
たぶん前者だろうが、初心者には簡単には創出はもちろんロ化芋無理。
一方法として「imogasi方式」で出来るが。Googleで「imogasi
方式」で照会すれば、条件抜き出しの問題が沢山出るので読んでみたら。
その他のなんたらをしたいことは、難しさを理解してから、考えること。
ーー
例データ
E列  F列  G列
たまごゆで1
たまごなま2
たまご温泉3
たまご固ゆで4
りんご青森産
りんごふじ
りんご王林
りんご焼き
G列の式
=IF(E2=$B$1,MAX($G$1:G1)+1,"")
下方向に式複写。
結果
上記G列
ーーーー
A2の式
=INDEX($F$1:$F$100,MATCH(ROW()-1,$G$1:$G$100,0))
下方向に式複写
A2以下行に
ゆで
なま
温泉
固ゆで
と出るだろう。B1にりんごと入れると即座に
青森産
ふじ
王林
焼き
トラ割るだろう。#N/Aが出ないようにするには、G列のMAX数字を複写している行番号を超えいないか、IF関数で判断し、超えておれば空白を返す。
色々やり方はあるがこれが、初心者には、判りやすいのではないかと思う。

投稿日時 - 2009-07-09 13:39:31

補足

早速の回答ありがとうございます。
ご指摘の通り、エクセル初心者です。…すみません。

今まではB1セルに条件を入力し、他のシートに作成したデータから指定されたものを表示させてました。(VLOOKUP)

それをB1セルに入力した文字を認識して表示するセルを残したまま、B2セルに『1』を入力したらA1~A3セルに他シートから指定されたものを表示したり、しなかったりとしたいのですが…。

こんな感じにしたいのですが…。

B1セルに たまご
B2セルに 1

A1セル ゆで    
A2セル かたゆで
A3セル なま    B3セル 鳥取県
             B4セル 料理用

B1セルに たまご
B2セルに (入力なし)




           B3セル 鳥取県
           B4セル 料理用
  
という具合に表示させたいと思ってます。
ゆで、かたゆで、なま、鳥取県…などは別シート(シート2)に一覧で作成しました。

投稿日時 - 2009-07-09 16:51:32

ANo.4

こんにちは!
横から失礼します。

すでに回答されていますが

A1セル =IF(COUNTBLANK($B$1:$B$2)>0,"",計算式)

としてオートフィルでA3までコピーしてみてください。

(この数式の意味は、もし、B1・B2セルのどちらか空白またはどちらも空白の場合は、空白にして、
それ以外は計算式どおりに!という意味です)

B1・B2セルを選択した後にF4キーを押せば
$B$1:$B$2 という表示になり、
B1・B2セルは固定したままですよ!ということです。
もし、$マークがなければA1セルの数式をオートフィルでA2にコピーすると
A2セルの数式は
=IF(COUNTBLANK(B2:B3)>0,"",計算式)
となり参照相手が動いてしまいます。

以上、色々試して頑張ってみてください。m(__)m

投稿日時 - 2009-07-09 13:32:33

補足

早速の回答ありがとうございます。
計算式のところは元々入っていた式を入れるのでしょうか?

…入れてみたのですがエラーになってしまいました…。

投稿日時 - 2009-07-09 16:09:26

ANo.3

No.1です。

>元々使っていた式はVLOOKUPなのですが…エラーになってしまいます…。何かいい手はありませんか?

元々の式を提示して見てください。

投稿日時 - 2009-07-09 13:16:56

補足

すみません、ありがとうございます。m(_)m

A1セル=VLOOKUP(B1,Sheet2!A3:AH28,3,FALSE)
A2セル=VLOOKUP(B1,Sheet2!A3:AH28,7,FALSE)

C1セル=VLOOKUP(B1,Sheet2!A3:AH28,4,FALSE)
C2セル=VLOOKUP(B1,Sheet2!A3:AH28,8,FALSE)
D1セル=VLOOKUP(B1,Sheet2!A3:AH28,5,FALSE)
D2セル=VLOOKUP(B1,Sheet2!A3:AH28,9,FALSE)

という式を入れてます。
すみません、初心者です…。

投稿日時 - 2009-07-09 15:58:33

ANo.2

>B2セルに個数を入れない場合はA1~A3セルは何も出てこないようにする計算式・・・?

A1セルに計算式「=」の後、「IF(B2="","",(現在入ってる計算式))」と追加入力してみて下さい
「=IF(B2="","",(現在入ってる計算式))」という感じです
最後にA3セルまで数式をコピーします(オートフィル機能でドラッグ)
現在入ってる数式に「VLOOKUP」を使用しているのでしたらその数式の「範囲指定」の部分を絶対参照に変更する必要があります

投稿日時 - 2009-07-09 11:37:47

補足

早速の回答ありがとうございます。
現在の式はVLOOKUPを使っているのですが…「範囲指定」の部分を絶対参照…というのはどういう風にしたらいいですか??

投稿日時 - 2009-07-09 11:48:21

ANo.1

A1~A3セルの式を次の様に修正します
=IF(B2<>1,"",「元々入っている式」)

これで、B2に1が入っていない場合は空白になります。
1以外でも何か入っていれば良いなら、IF(B2="",……
と、なります。

投稿日時 - 2009-07-09 11:12:46

補足

早速の回答ありがとうございます。
元々使っていた式はVLOOKUPなのですが…エラーになってしまいます…。何かいい手はありませんか?

投稿日時 - 2009-07-09 12:03:39

あなたにオススメの質問