- ベストアンサー
VLOOKUPの結果を値として保存する方法
- ExcelのVLOOKUP関数を使用して企業番号から企業名を取得していますが、一部の会社が月次でリストからなくなるため、値としてセルに保存したいと思っています。
- VBAを使用すれば対応できますが、Excelの画面からだけで実現できる方法はあるのでしょうか?マクロの記録等はOKです。
- VLOOKUP関数の結果を関数ではなく、値として保存する方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
元のご相談は >自分でソースをかかないのであれば問題なく、マクロの記録等はOKです。 という要求でしたので,「マクロは使う」けど「マクロをユーザーが起動する必要が無い,マクロが勝手に起動して必要なことを自動でやってくれる」方法をご案内しました。 ご自身はマクロは使えると言うことなので,今回使用したようなイベントプロシジャについてもご了解済みの事と思いますが,話が違って「そもそもマクロは全部ダメよ」という事でしたら,手動でコピーして形式を選んで値にして貼り付けてください。 #参考 お勧めはしませんが,こんな方法もあります。 状況: たとえば今,H8セルに =VLOOKUP(B3,C7:D11,2,FALSE) と記入されている ご相談の状況説明により,リストとなるC7:D11は計算の後にクリアされてしまいB3に該当するデータが見つからないエラーが発生する。 準備: ブックを開く エクセルのオプションで計算方法欄にある「反復計算」のチェックを入れておく 手順: B3をまず先に空っぽにしておく H8の数式を =IF(B3="","",IF(ISERROR(VLOOKUP(B3,C7:D11,2,FALSE)),H8,VLOOKUP(B3,C7:D11,2,FALSE))) と書き換える 動作確認: B3にデータを記入し,正常に計算できることを確認する C7:D11からB3に該当するデータを削除若しくは編集し,従来ならエラーになったが,値が保持されることを確認する。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
>ただし… 自分ではマクロが書けないので,コピー貼り付ければ使えるよう丸ごと全部教えてもらえれば大丈夫。 と言いたかったのか 自作マクロは全然ダメよ。 と言いたかったのか どういうことでしょう? 作成例1: 新しいマクロの記録を開始する マクロの記録先は「作業中のブック」にする 所定のセルに所定のVLOOKUP関数を実際に記入する 所定のセルをコピーする 所定のセルに形式を選んで貼り付けで値のみ貼り付けて値化する マクロの記録を終了する シート上にオートシェイプなどでボタン絵柄を配置する 右クリックしてマクロの登録で,記録したマクロを登録する。 所定のセルに企業番号を記入し,マクロボタンをクリックすると,所定の企業名を所定のセルに記入してくれる。 作成例2: シート名タブを右クリックしてコードの表示を開始する 現れたシートに下記をコピー貼り付ける private sub worksheet_Change(byval Target as excel.range) if application.intersect(target, range("B3")) is nothing then exit sub cells(8, 8) = application.vlookup(range("B3"), range("C7:D11"), 2, false) end sub ファイルメニューから終了してエクセルに戻る アナタが書いてみたサンプルマクロに従い,B3セルに企業番号を記入すると,マクロが自動起動してVLOOKUPした結果を所定のセル(8の8)に書き入れてくれます。
お礼
回答ありがとうございます。またお返事が遅くなり申し訳ございません。 この件について正確に述べますと、 まず問題をかかえていたのは、私の妹になります。そして妹から相談をうけたのが私になります。 私自身はマクロプログラム等はできる人間なので、VBAを使えば簡単だよとサンプルを作って送ってあげたのですが、妹の職場はVBAなんて使える人がいないのでダメと却下されてしまいました。 (ボタンやVBAコード全般すべてがだめだとのこと) そこで、EXCELの画面からだけで実装できる方法がないかないかとここで質問させて頂いた次第です。 普通に考えるとできなそうですが、ここで質問したらミラクルがおきるんじゃないかと思ったのですが難しそうですね ありがとうございました。
お礼
お礼が遅くなりました。ありがとうございます。 色々奥が深くて勉強になります。