• ベストアンサー

Excel 検索結果の表示について

Excel2000を使用しています。 【現在の状況】 ■A列に検索値が入力されています。 ■B列に結果を表示させたいので、空欄です。 ■C列にVLOOKUPの式が入力されていて、結果が表示されています。 ■別シートに検索範囲が入力されています。 【作業したい内容】 ■A列の検索値を使用して、C列に結果が表示されているのですが、C列の結果をB列に表示させたい。 ■B列に「=C1」と入力せず、B列は空欄の状態で、C列のVLOOKUPの式に、B列に値を表示させるように、式を入れたい。 以上、どのような式をC列に記述すればいいのでしょうか。 ご回答の程、よろしくお願い致します。

  • nene99
  • お礼率78% (152/194)

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.6

数式(関数)にそのような機能はありません。 ですがVBAを使えば可能です。ただマクロになるのでマクロが有効な状態にしなければなりません。 VBAの場合の方法は2つあります。 1.C列の結果を値化してB列に貼り付ける。(こちらは「新しいマクロの記録」でも設定可能) 2.A列を基にマクロで求めた結果をC列に直接入力する。 どちらもショートカットで手動で指示する方法と、A列に値が入力された時点で自動で行う方法があります。

nene99
質問者

お礼

ご回答頂き、ありがとうございます。 VBAを使えるかどうかわかりませんが、自分なりに、この回答を参考に、作業してみたいと思います。

その他の回答 (10)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.11

C列に書いた式で(何らかの処理の結果)B列に値を設定(表示)することはできません。 あるセルに書いた式の結果はそのセルに反映されて他のセルの値を直接他の式から(例えユーザー定義関数を作ったとしても)変更するということはできません。 PRINTTO(表示するセル、式) のような関数があると機能としては面白いと思いますが、現在のエクセルではできません。 A列に入力されたことをキッカケにマクロを起動しB列に値を設定することはできます。 あと、エクセルでは、セルに式があるのが普通で、式があることに違和感を覚えるような人は一般的にはいないか凄く少数ではないかと思います。

nene99
質問者

お礼

出来ないと言う事がよくわかりました。 ご回答いただいた方のVBAの作業をやってみて、どうしても出来ないようでしたら、No.7の方の回答の 「=IF(A1="","",C1)」式で対応したいと思います。 ご回答いただき、どうもありがとうございました。

  • cockerel
  • ベストアンサー率46% (253/548)
回答No.10

もう一度よく質問文を読みました。 ある入力を与えると(A列)、ブラックボックス(C列)を介して何かが出てくる(B列)というオートマトン(たとえば、子供用のゲーム)を考えているわけですね。 残念ながら、関数はセルの属性のため、Excelの関数では駄目なようです。 苦肉の策: B1に「=C1」を入力して たとえばA1>0であれば「黒」、A1<0であれば「白」 というような条件付き書式を使用して式を隠します。(0は入力範囲外の値の例です。) と書いてみたものの、かなり場当たり的です。せめてB列へのアクセスが禁止できるとこれでも少しは有効なのですが・・・。 (データベースソフト等を使用されるとお望みのことができます。)

nene99
質問者

お礼

出来ないと言う事がよくわかりました。 ご回答いただいた方のVBAの作業をやってみて、どうしても出来ないようでしたら、No.7の方の回答の「=IF(A1="","",C1)」式で対応したいと思います。 ご回答いただき、どうもありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.9

#5です。補足で >立腹のようで そんなことはありません。きつい表現と捉えたのなら、すみません。 ●関数の基本的なことがわかれば、この質問は出ないとおもいます。 今まで色々個々の関数などを使用されたり、勉強されたりされたでしょうが、それらの知識にもまして、私が書いたことは、エクセルでは本質的なことなのです。私の回答の書き振りなどどうでも良いことです。 >思わぬ誤解を招いてしまします 誤解と捉えるところが、問題です。一見できないようなことを質問するなら、なぜそういう要求があるのか、先回りして、質問に書いておくのがコツです。 理由は、#4の補足に書いていただいたのですが >B列に式があると、「何コレ?」となるので、シンプルな形(空欄)にして、A列に入力すると、B列に値が反映されるようにしたいのですが、不思議でしょうか 不思議です。私には理由が今でも判りません。別のセルの値が、未入力で、ゼロとか#REFなどエラー値がB列に出ていて、目ざわりと言うことですか。エクセルは結果の値はセルに出るが、式はセルに出ないでしょう。 こういう事態なら改善の方法はあります。改めて質問してください。

nene99
質問者

お礼

どうもありがとうございました。

  • cockerel
  • ベストアンサー率46% (253/548)
回答No.8

ふたたび失礼します。 >B列に式があると、「何コレ?」となるので、シンプルな形(空欄)にして、A列に入力すると、B列に値が反映されるようにしたいのですが、不思議でしょうか? そのようなニーズでしたら、最初に書いた「C列をコピーして「値」としてB列にペーストする方法」がよいようです。 このマクロでしたら、だいぶいい加減ですが、 Columns("C:C").Select Selection.Copy Columns("B:B").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ 程度のものになります。ボタン化しておけばよいと思われます。(より適切には、ダイアログ形式にしてA列の値の入力のプロンプト、それによるクリア等を工夫した方がよいかもしれません。)

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.7

No.4です。 補足ありがとうございます。 B列も入力域として使いたいということでしたら、他の方のご回答にもあるようにマクロを使わないとできないように思います。 もし「A列が空欄のときB列に何も表示させたくない」ということでしたら、B列に =IF(A1="","",C1) を入れておく、といったことで対応可能かと思います。

nene99
質問者

お礼

出来ないと言う事がよくわかりました。 ご回答いただいた方のVBAの作業をやってみて、どうしても出来ないようでしたら、この「=IF(A1="","",C1)」式で対応したいと思います。 ご回答いただき、どうもありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

エクセルにおける関数の基本的なことがわかってないのではないですか。関数式は関数を入れるセル以外のセルの値は設定(左右)できません。 B1に下記の式を入れるとして =IF(A1="",C1,D1=3) 思考は、 もしA1が空白ならB1にC1の値をいれ、 そうでなければD1には3を入れる、のようなことです。 これはVBA以外では不可能。 ーーーー B列に「=C1」と入力せず、B列は空欄の状態で・・ という風な、変わった・特殊ニーズが、どういうことから来るのか、説明すれば、回答者は、「それであればXXXにしたら」という回答が得られる場合もあるかもしれない。 事情や思考過程は、説明しなければ、読者や回答候補者にはわからない。

nene99
質問者

補足

私の補足の言葉が至らずに、とてもご立腹のようで、申し訳ありません。 解らないので、このサイトでお聞きし、補足をさせていただいているのですが… メールの文というものは、思わぬ誤解を招いてしまします。 折角ご質問を頂きましたのに、申し訳ございませんでした。

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.4

おそらく多くの方がご質問の内容に?をもたれているかと思います。 1)なぜB列にVLOOKUPを直接入れてはいけないのでしょうか? 2)なぜB列は空欄でなければならないのでしょうか? 補足をお願いいたします。

nene99
質問者

補足

ご質問いただき、ありがとうございます。 ■このブックは複数の人が共有して使用するものです。 ■B列に式があると、「何コレ?」となるので、シンプルな形(空欄)にして、A列に入力すると、B列に値が反映されるようにしたいのですが、不思議でしょうか?

  • cockerel
  • ベストアンサー率46% (253/548)
回答No.3

>行いたい作業は、A列に値を入力すると、B列に検索結果が表示されるようにしたのです。(C列は非表示にして) もし『それだけ』であれば、循環参照は無関係です。「=C1」としてC列は非表示にしても問題ないように感じられるのですが。 バージョンによって非表示の場合に参照エラーを生じることがあるとしたら、私の誤りです。 もし、C列の式が見られては困る等の意味で「非表示」にするのでしたら、『別のシート』にC列の式を入れてシートごと非表示にしてしまえばよいように考えられます。 的はずれでしたらごめんなさい。今ひとつ、質問の内容を理解していないのかも知れません。

  • m_mik
  • ベストアンサー率26% (31/117)
回答No.2

#1さんへの回答を見て… C列を表示させたくないのでしたら、C列の幅を0にしたらよろしいのではないでしょうか? もしくは、C列の表示色を白にしてしまうなど… 見た目上はこれで表示されていないようになりますが、いかがでしょうか?

nene99
質問者

お礼

C列は非表示になっているのです。 ご回答頂き、ありがとうございます。

  • cockerel
  • ベストアンサー率46% (253/548)
回答No.1

循環参照になるので「式」は難しそうです。 B列とC列だけの問題であれば、C列をコピーして「値」としてB列にペーストする方法が単純ですが、おそらく「C列のVLOOKUPの式に、B列に値を表示させるように」という表現(ちょっと理解できないでいます)からそれをまた参照するという形で、収斂値をもとめる漸化式等を想定されているように感じられます。その場合はマクロを組むことになりそうです。

nene99
質問者

補足

早速にご回答頂き、ありがとうございます。 行いたい作業は、A列に値を入力すると、B列に検索結果が表示されるようにしたのです。(C列は非表示にして) 言葉足らずで恐縮ですが、ご理解いただけましたでしょうか? また何か良い案がございましたら、ご回答頂ければ幸いです。 よろしくお願い致します。

関連するQ&A

  • VLOOKUP関数等で結果がエラーの場合の表示について

    こんばんは VLOOKUP,IF関数で結果がエラーの場合の表示についてお伺いします。 まず、VLOOKUPの場合 検索する値が検索範囲に無い場合、結果はエラーが表示されますが、この場合エラー表示では無く、空白で表示させたいのですが、この場合の式はどのよすればよいでしょうか? 2点目、A列とB列を掛け算してC列に結果を表示させたい。しかし、A列に「未定」と文字列が入力してある場合、B列に整数が入力してあっても、C列にはエラーが表示されます。この場合、C列を空白で表示させたいのですが、この場合の式はどのよすればよいでしょうか? よろしくお願いします

  • エクセルでの検索結果表示について

    シート1のA列に番号を入力するセルがあります。 シート2のA列に番号・B列に名前が入力されています。 シート1のA列に番号を入力するとシート2のA列を検索かけてシート1のB列に検索した結果の名前を表示させたいのですが、エクセルでできるでしょうか? よろしくお願いします

  • Excelで検索結果をテキストボックスに表示

    Excelユーザーフォームにテキストボックス4つとコマンドドボタン1つを作成して、TextBox1に検索項目を入力しボタンを押すとA列を検索してB列、C列、D列の検索結果をTextbox2(B列)、textbox3(C列)、textbox4(D列)に表示する。 A列に同じ項目があったら、ボタンを押すと次の検索結果をTextboxに表示するマクロを教えてください。

  • VLOOKUP 関数で表示された文字列が検索できま

    環境:Excel 2007, Windows 7 Excel で2つのファイルを用意します。ファイルA はデータベースの構造です。ファイルB は、ファイルA を VLOOKUP 関数で検索して、その中の文字列を表示します。 まず、ファイルB だけを開いた状態にします。ファイルB には、ファイルA に記述されている文字列が VLOOKUP 関数により表示されています。文字列「ABCDEFG」は、ファイルB には直接 記述されていません。しかし、ファイルA に記述されているため、ファイルB でも表示されています。つまり、VLOOKUP 関数のセルに表示されています。ここで、ファイルB 内で「ABCDEFG」を検索します。すると検索文字列としてヒットしません。ファイルA で「ABCDEFG」を検索するとヒットします。つまり、VLOOKUP 関数で表示されている文字列は検索対象から除外されています。 質問です。VLOOKUP 関数で表示された文字列を検索する方法を教えていただけないでしょうか。私なりに調査しましたが、理解できませんでした。おそらく ネット検索が へたなせいです。よろしくお願いいたします。

  • エクセルでの計算式を教えてください。

    エクセルでC列に結果を表示させたいのですが A:社名 B:商品名 C:価格   A1が空欄 → Cも空欄に。 A1にAという社名 → B1の商品名を[シート1]から検索し、Cに価格を表示 A1にA以外の社名 → B1の商品名を[シート2]から検索し、Cに価格を表示 今までは単純にA1に社名が入っていれば[シート1]から検索すればよかったので =IF(A1="","","VLOOKUP(A1,[シート1]!A:D,3,FALSE)) とやっていました。 条件が1つ増えたので式をかえたいのですがどのようにすればいいでしょうか? マクロはさっぱりなので、IFとかORとかで式ができるのであれば教えてください。 よろしくお願いします。

  • ExcelのVLOOKUPで結果の表示が・・・

    うまくいきません。 =IF(B17="","",VLOOKUP(B17,Sheet3!$A$1:$B$40,2)) という関数を入力しました。 結果は範囲内の2列目から検索された 「0010181」という数字のはずなのですが正しく表示されません。 この場合、結果は「0040602」と表示されました。 (関数は間違っていないと思うのですが) セルの書式設定は「文字列」になっています。 他のセルでもやはり正しい結果がでません。 こんなことは初めてでさっぱりわかりません。 どうしたら、範囲内にある正しい数字(文字列)が表示されますか? うまく説明できないので不明な点があったら補足致しますので よろしくお願い致します。

  • エクセルでデータの検索

    現在 sheet1に A列 B列  C列 あ い う え お と入力されています Sheet2には A列 B列 あ りんご い ばなな あ みかん う うめ い なし と入力されています。 sheet1のA列を検索条件として A列と一致するsheet2にあるものをその横の列に表示されるようにしたいです。 A列 B列   C列 あ りんご  みかん い ばなな  なし う うめ このような場合、一致するものは複数あるため VLOOKUPは使用できません。 どのようにすれば、このような検索ができるのでしょうか?

  • 【Excel】一致するデータの検索

    Excel2003を使用しています。 Sheet1のB列の値がSheet2のA列に入力されている値と一致したら、Sheet1のC列とD列の値をSheet2のC列とD列に表示させたく、VLOOKUP関数を使用したところ、Sheet1のB列とSheet2のA列のデータの並び方(順序)が同じではないためか、VLOOKUP関数ではできませんでした。 こういう場合、マクロで処理することは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? Sheet1のデータは4行目から、Sheet2のデータは6行目から入力されています。 よろしくお願いします。

  • エクセルで検索結果をユーザーフォームに表示したいのですが

    A列 B列 C列 D列・・・M列 ID 名前 区分 日付・・・備考欄  というようなデータで1000行以上になる予定で作っています。  ユーザーフォーム上でIDを入力・検索した結果を同じフォーム内に表示させたいと思っています。 その際、  (1)同じIDが何度も登録されている時もあるのですが、重複OKですべてを表示させたい(スクロールバーなど使用したい)  (2)列はA~MまであるのですがA・B・Dの3列のみをフォーム内に表示させたい (もし可能なら、(3)同じ形式の複数シートからの検索結果をまとめて表示させる方法も教えて欲しいのですが)  Excelに詳しい方、よろしくお願いします。

  • Excel2007で、検索をしたいのですが…。

    Excel2007で、検索をしたいのですが…。 A列にNo. B列に品名 であればVLOOKUPで検索出来るのですが、教えて頂きたいのは A列にNo. B列に品名 C列にもNo. D列にNo.入力 E列に表示 例) 01     机      91    02     椅子     92    03     布      93 01 と入力した場合も 91 と入力した場合もどちらも『机』と表示されて欲しいのです。 この場合、VLOOKUPでは対応出来ない気がするのですが、何か別の関数ありますか? 当方、関数は苦手で、ほぼ初心者のようなものです。 宜しくお願い致します。

専門家に質問してみよう