プロが教える店舗&オフィスのセキュリティ対策術

検索しても自分では見つけられなかったので、質問させてください。
私はExcel2007の一個前のものを使っています。
仕事上、sheet1でVLOOKUPを使い、sheet2(データ入力用シート)の情報を読み取るブックを使っています。
作った人とは連絡が取れないので、知恵をお借りしたいです。

そのExcelのVLOOKUPでは、sheet2の14列目を読み取るようにしていますが、13列目に列を挿入して、15列目(挿入前は14列目)を読み取るようにしたいです。
しかし、sheet1のVLOOKUPは1500行も使っている上に、VLOOKUPを使っている行や別のデータを入れている行もあり、簡単には引数を14から15に変更出来ません。
sheet1のVLOOKUPの14を15に返る簡単な方法は無いでしょうか?

つたない説明で申し訳ありません。
宜しくお願いします。

A 回答 (6件)

たびたび失礼します。

#1です。
#2さんの補足に書かれた数式で再現してみました。

置換
検索する文字列「,14,FALSE」
置換後の文字列「,15,FALSE」
上記で問題なく、思ったとおりの置換結果でした。

失礼かとは思いますが、確認です。
置換えはsheet1で行っていますよね・・
    • good
    • 1
この回答へのお礼

返事が遅れて申し訳ありません。
この方法で上手く出来ました。
置き換えはSheet1でやっていたのですが、他の方法では一致せずに困っていたので助かりました。
本当にありがとうございました。

お礼日時:2008/05/17 14:27

式は関数では捉えられないので、VBAを使わないとダメと思います。


式を探すとき、全体が全く同じ式にはならない、すなわち第1引数は各行で、通常は式複写で変わる。色々なところに別種のVLOOKUP関数が
使われているかもしれない。検索表が何種も見つからなければ、多分
1種と思うが。
ですから
(1)式が設定されているか(HasFormulaで聞ける)
(1)VLOOKUP関数である+第4引数False型である
(2)第2引数(参照表)が同じ
(3)第3引数が14である
の時、初めて14=>15にFormulaを設定しなおす
そうしないと本当は、危ないと思う。
しかしVBAの経験無いだろうしなあ。
次善の策として既出回答でOKかやってみるか。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
VBAはまだあまりよく分からないのですが、ANo.5さんのご回答で上手く出来ました。
でもVBAでも出来るのだとわかり、これからVBAを勉強したいと思っています。
本当にありがとうございました。

お礼日時:2008/05/17 14:29

#3です。



早速やってみたとのことですが、

「ツール - オプション - 全般」で「R1C1 参照形式を使用する」にチェックを入れたときに、VLOOKUP関数を使っているすべての数式が同じになったかどうかを、教えてもらえますか?
    • good
    • 1

どんな数式が入っているのか解らないので、何とも言えないのですが、



「ツール - オプション - 全般」で「R1C1 参照形式を使用する」にチェックを入れると、すべての数式が同じになるかもしれません。

その場合は、その数式で検索をかけて、14を15に変えたものに置換するとうまくいくかもしれません。

うまくいかない可能性も十分に考えられるので、セーブしてから行うとか、実験用にコピーファイルを作るとかしてくださいね。
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速やってみたのですが、私が力不足なため、よく分かりませんでした。
数式は、ANo.2さんの細くに書いたので、もし対応策がありましたら、宜しくお願い致します。

お礼日時:2008/05/16 13:44

=VLOOKUP(Sheet1!A1,Sheet2!$A$1:$Z$1000,14)



こんな感じの参照式がずらりと並んでいて、式の第3項目の"14"を
一気に"15"に変えたいんですよね。でしたら「検索」を使えばいい
んじゃないかと。

VLOOKUPが書いてあるセルを全部選択、「編集」「検索」の「置換」タブで

「検索する文字列」を「,14)」に
「置換する文字列」を「,15)」にします。

カンマと後ろ括弧まで文字列に入れる点がミソです。素直に「14」「15」
と指定すると、セル参照の式まで(例えばC14がC15に)変わってしまいます
ので注意が必要です。

この場合、「全て置換」で一気に作業されてもいいのですが、作業上は
念のため「置換」でひとつずつ確認されたほうがいいように思います。

この回答への補足

ご丁寧にありがとうございます。
早速やってみたのですが、一致するものがないというような結果が出てしまいました。
式の一例を書くと、
=IF(ISERROR(VLOOKUP(B1668,●,14,FALSE)),0,VLOOKUP(B1668,横●,14,FALSE))
になっています(●はシート名です)。
度々申し訳ありませんが、御力添えお願い致します。

補足日時:2008/05/16 13:39
    • good
    • 0

こんにちは。



単純に、sheet1の文字列(VLOOKUP関数)の「置換」はいかがですか。
ex.
検索する文字列「,14)」
置換後の文字列「,15)」
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速試してみたいと思います。
迅速な回答に感謝しています。

お礼日時:2008/05/16 13:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!