• ベストアンサー

エクセル2003の計算式

エクセル2003を使用してます。計算式が分からないのですが、下記のようなことが出来るものはありますか? B1セルに たまご と入力すると A1セルに ゆで A2セルに かたゆで A3セルに なま ・・・・ と出てくるようになってます。 入力する文字は『たまご』以外にも『りんご』などがあって入力する文字によってA1~A2セルに出てくるものが異なります。 B1セルに たまご(りんご他) を入力 B2セルに 1 (個数)と入力した場合のみ 上記と同じようにA1~A2セルが出て、B2セルに個数を入れない場合はA1~A3セルは何も出てこないようにする計算式はありますか?

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.7

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が空白なら、空白を表示、そうで無い場合は元の式を実行しています。 エラーとなった式と見比べて見てください。

beru2007
質問者

お礼

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

その他の回答 (7)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

beru2007
質問者

お礼

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

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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関数で判断し、超えておれば空白を返す。 色々やり方はあるがこれが、初心者には、判りやすいのではないかと思う。

beru2007
質問者

補足

早速の回答ありがとうございます。 ご指摘の通り、エクセル初心者です。…すみません。 今まではB1セルに条件を入力し、他のシートに作成したデータから指定されたものを表示させてました。(VLOOKUP) それをB1セルに入力した文字を認識して表示するセルを残したまま、B2セルに『1』を入力したらA1~A3セルに他シートから指定されたものを表示したり、しなかったりとしたいのですが…。 こんな感じにしたいのですが…。 B1セルに たまご B2セルに 1 ↓ A1セル ゆで     A2セル かたゆで A3セル なま    B3セル 鳥取県              B4セル 料理用 B1セルに たまご B2セルに (入力なし) ↓            B3セル 鳥取県            B4セル 料理用    という具合に表示させたいと思ってます。 ゆで、かたゆで、なま、鳥取県…などは別シート(シート2)に一覧で作成しました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

beru2007
質問者

補足

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

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

No.1です。 >元々使っていた式はVLOOKUPなのですが…エラーになってしまいます…。何かいい手はありませんか? 元々の式を提示して見てください。

beru2007
質問者

補足

すみません、ありがとうございます。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) という式を入れてます。 すみません、初心者です…。

回答No.2

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

beru2007
質問者

補足

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

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

A1~A3セルの式を次の様に修正します =IF(B2<>1,"",「元々入っている式」) これで、B2に1が入っていない場合は空白になります。 1以外でも何か入っていれば良いなら、IF(B2="",…… と、なります。

beru2007
質問者

補足

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

関連するQ&A