• ベストアンサー

ExcelのVLOOKUPの列番号を一括で変更したい

検索しても自分では見つけられなかったので、質問させてください。 私はExcel2007の一個前のものを使っています。 仕事上、sheet1でVLOOKUPを使い、sheet2(データ入力用シート)の情報を読み取るブックを使っています。 作った人とは連絡が取れないので、知恵をお借りしたいです。 そのExcelのVLOOKUPでは、sheet2の14列目を読み取るようにしていますが、13列目に列を挿入して、15列目(挿入前は14列目)を読み取るようにしたいです。 しかし、sheet1のVLOOKUPは1500行も使っている上に、VLOOKUPを使っている行や別のデータを入れている行もあり、簡単には引数を14から15に変更出来ません。 sheet1のVLOOKUPの14を15に返る簡単な方法は無いでしょうか? つたない説明で申し訳ありません。 宜しくお願いします。

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

  • ベストアンサー
  • simone86
  • ベストアンサー率50% (23/46)
回答No.5

たびたび失礼します。#1です。 #2さんの補足に書かれた数式で再現してみました。 置換 検索する文字列「,14,FALSE」 置換後の文字列「,15,FALSE」 上記で問題なく、思ったとおりの置換結果でした。 失礼かとは思いますが、確認です。 置換えはsheet1で行っていますよね・・

sasunao63
質問者

お礼

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

その他の回答 (5)

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

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

sasunao63
質問者

お礼

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

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.4

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

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.3

どんな数式が入っているのか解らないので、何とも言えないのですが、 「ツール - オプション - 全般」で「R1C1 参照形式を使用する」にチェックを入れると、すべての数式が同じになるかもしれません。 その場合は、その数式で検索をかけて、14を15に変えたものに置換するとうまくいくかもしれません。 うまくいかない可能性も十分に考えられるので、セーブしてから行うとか、実験用にコピーファイルを作るとかしてくださいね。

sasunao63
質問者

お礼

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

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.2

=VLOOKUP(Sheet1!A1,Sheet2!$A$1:$Z$1000,14) こんな感じの参照式がずらりと並んでいて、式の第3項目の"14"を 一気に"15"に変えたいんですよね。でしたら「検索」を使えばいい んじゃないかと。 VLOOKUPが書いてあるセルを全部選択、「編集」「検索」の「置換」タブで 「検索する文字列」を「,14)」に 「置換する文字列」を「,15)」にします。 カンマと後ろ括弧まで文字列に入れる点がミソです。素直に「14」「15」 と指定すると、セル参照の式まで(例えばC14がC15に)変わってしまいます ので注意が必要です。 この場合、「全て置換」で一気に作業されてもいいのですが、作業上は 念のため「置換」でひとつずつ確認されたほうがいいように思います。

sasunao63
質問者

補足

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

  • simone86
  • ベストアンサー率50% (23/46)
回答No.1

こんにちは。 単純に、sheet1の文字列(VLOOKUP関数)の「置換」はいかがですか。 ex. 検索する文字列「,14)」 置換後の文字列「,15)」

sasunao63
質問者

お礼

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

関連するQ&A

  • VLOOKUP関数の列番号が式のコピーで増える

    Excel2010を使っています。 VLOOKUP関数の列番号が式のコピーをすると増えてしまいます。 コピーする前から正しく式が入らないのも原因だと思います。 「#N/A」と出ません。 ところが正しく出るシートもあります。 自分が作ったブックではないので、何か間違ったことをしてあるのでしょうか。 どんなことが考えられますか。 教えてください。 宜しくお願い致します。

  • エクセル2007 VLOOKUP関数について

    エクセル2007を使用し、VLOOKUP関数で別のシートから反映させています。データとなるシートの行を途中で挿入して反映させようとすると「0」といった数字が返されてしまいます。 データとなるシートは行を挿入して利用することはできないのでしょうか?このようなときはどういった対処方法がありますか?? 他の行(元からあるシートの)の値はきちんと返されます。

  • エクセルのVLOOKUP関数について

     エクセルで、VLOOKUPを使っています。  A3に 1 と入力すると、Aの5行目11行目までから、別のシートに入力してある A1~G1の項目の情報が1列にババッと入力されています。    そのVLOOKUP関数を使おうと思うのですが、この関数は数年前に入力したもので、式の作り方がわからなくなってしまいました。 前使った式は =VLOOKUP(F2,'C:\Documents and settings\office\デスクトップ\新しいフォルダ (2)\[ガイドブック.xls]Sheet1'!1:65536,11,0) です。 この式の意味が、今見てもさっぱりわかりません。 この式がどういう命令になっていたのか・・・・(特にSheet1からわからない)、 もし出来たら教えていただけるとありがたいです。 間違っている箇所があったらそれも教えてくださるとありがたいです。

  • VLOOKUPに関して教えてください

    EXCEL97です VLOOKUP関数で =VLOOKUP($B$1,SHEET!$A$2:$Q$30,2,0)という式を入力して次の列にコピーすると =VLOOKUP($B$1,SHEET!$A$2:$Q$30,2,0)とコピーしてしまいますよね 次の行には=VLOOKUP($B$1,SHEET!$A$2:$Q$30,3,0)にしたい時があるのでいつも 手入力で2→3に変更するかVLOOKUP式を入れなおしているのですが 手入力せずに2→3をコピーできる方法ってありますか? VLOOKUP式を使うことが多く毎回めんどくさくて・・・ どなたか教えてくださいませんか?

  • エクセル ブック内のシート間での行の参照?

    エクセルの同じブック内のシート間で、セルを参照するのではなく、行参照?させたいのですが・・・。 例えば、、  シート1    A    B    C    D     1行目 りんご みかん いちご ぶどう     2行目 赤    オレンジ  赤   紫 と入力すると同じようにシート2にも入力されるようにしたいのと、1行目と2行目の間に行を挿入しても同じようにシート2にも挿入されたり、 さらにはA列・B列のみ入力されたりするようにしたいのですが、(C列D列には別々のデータを入力したい)どのような方法がありますでしょうか?説明がわかりにくく申し訳ないのですが、宜しくお願いします。

  • エクセルについて教えてください。

    エクセルについて教えてください。 データ入力用の基礎シートがあります。 それをコピーし各自入力しやすいように加工(列行幅の変更・行の挿入・フォントの変更・列を隠すなど) しています。 最終的に入力したものを基礎シート道りの列行幅だったり、フォントだったり、に戻さなくてはいけません。 どのようにすればよいのでしょうか??

  • Excel VLOOKUPをVBAでやりたいのですが、分からなくて困っ

    Excel VLOOKUPをVBAでやりたいのですが、分からなくて困ってます。 Sheet1のC列2行目行こうにSheet2のI列のデータを取得し (A列にデーターが入っている分、(時と場合により表示数が違う為)) なおかつ Sheet1のD列2行目以降にB-Cの差し引きをおこなう 以上のことをSheet1をアクティブにした時VBAでおこなうには、? 教えて下さい。宜しくお願い致します。

  • EXCEL の VLOOKUP で 結果は正しいのですが・・・・

    EXCEL の VLOOKUP で 結果は正しいのですが・・・・ 2SHEETの EXCEL BOOK で 1SEET目は「台帳」と言う名前です。 検索値は1SHEET目にあり、検索対象は2SHEET目にあります。 2SHEET目の検索範囲に「早得」と名前をつけてあります。 検索の結果は検索値があるか/無いかが判れば良いので、検索範囲の1カラム目(検索キー)を返すようにしています。 2SHEET目のY列に以下の式を入力すると、 結果が返ってくるのですが、 =IF(ISNA(VLOOKUP(台帳!G6,早得,1,0)),"",VLOOKUP(台帳!G6,早得,1,0)) SHEET2上に検索値があると、その同じ行に結果を返したいのですが、違う行に結果が表示(返って)されてしまいます。 例: Sheet1(台帳)のG25の値が、 Sheet2の「早得」の22行目にあった場合、 Sheet2の15行目に結果が表示されるような感じで規則性がつかめませんが、ちゃんと存在するものだけSheet2の関数を入れているY列に返ってきます。正しい結果が返ってきているようなのですが、表示される行がおかしなところに表示されてしまいます。 何がまずいのかさっぱりわかりません。 環境は Windows XP の Office 2003 です。 よろしくお願いいたします。

  • vlookup で列番号を使わない方法は?(Excel)

    Excelでいくつものブックから、マスター.xlsを参照して、データベース的に使用しています。 マスターで、最初にA列:ID、B列:氏名、C列:ふりがな、D列:姓、E列:名、F列:所属と作り、 他のブックからIDからvlookupを利用して、それぞれ必要なデータを導き出していたのですが、 必要が生じてマスター.xlsのそれぞれの列の間に色々と加えてしまったために、例えば、所属がI列まで移動してしまいました。 範囲に名前を付けているので、所属を検索する関数が 「=vlookup(a1,'マスター.xls'ID所属検索,6,false)」だったのが、 「=vlookup(a1,'マスター.xls'ID所属検索,9,false)」と変更しなければなりません。 検索元のvlookupの列数を変更しなければならないのが非常に面倒です。 何か方法は無いのでしょうか? ファイルもたくさんあるし、そのファイルの中でも参照したいデータも複数あるので、気が遠くなります。 ヒントになりそうなことでも結構ですので、ご教授下さい。

  • VLOOKUP関数 列番号の設定の仕方教えて下さい

    VLOOKUP関数の列番号を 1、2、とかではなく、 計算して列番号を設定することはできますか? シート2 に入っているデータを参照して シート1 に関数をいれて、表示させたいと思っています。 シート2 データは 3行目に、項目(品名、(1)材料名、(2)数量、(2)材料名、(2)数量、...、(10)材料名、(10)数量) A列、 B列、 C列、 D列、 E列、...、 M列、 N列 クッキー、小麦粉、100、卵、1、...、砂糖、20 クラッカー、小麦粉、100、米粉、10、...、りんご、0.2 が入っていて、4行目から100行目くらいまでデータがはいっています。 シート1 の セルA5に品名を入力すると、 シート2の(1)材料名がセルA6に、 (1)数量がセルB6に、 (2)材料名がセルA7に、 (2)数量がセルB7に、 ... (10)材料名がセルA15に、 (10)数量がセルB15に、 入るように作りたいのですが、VLOOKUPの列番号を COLUMNやINDEXなど試してみましたが、エラーばかりで うまくできません...VLOOKUPでは無理なのでしょうか? どなたか詳しい方教えてください。よろしくお願いします・

専門家に質問してみよう