• ベストアンサー

VLOOKUPの検索の型が勝手に変わっていた

ある日あるエクセルファイルを開くと、 VLOOKUPの検索の型が勝手に全然違うセルの場所を参照していたのですが (1)検索の型は0 か 1しかあり得ないですよね? (2)こんなバグが起こることは有るのでしょうか? (3)このバグを回避する方法は有りますか? 1文を上げると以下のようになっていました。 VLOOKUP($GW49, $C$54:$D$58,2,HM61)

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.7

補足された情報が少なすぎて追加のアドバイスが困難です。 GZ49の数式が当初は次のようになっていて VLOOKUP($GW49, $C$54:$D$58,2,1) いつの間にか次のようになった VLOOKUP($GW49, $C$54:$D$58,2,HM61) と言うことでしょうか? それは誰かが無意識で数式を書き換えた以外に考えられません。 尚、第4引数の1はTRUEの動作になりますので「いや元々はFALSEが入っていた(はず)です。」と喰い違います。

KAIJI-000
質問者

補足

>いつの間にか次のようになった >VLOOKUP($GW49, $C$54:$D$58,2,HM61) >と言うことでしょうか? その通りです。 >それは誰かが無意識で数式を書き換えた以外に考えられません。 やった覚えはないのですが、もしやっていたらすいません。

その他の回答 (6)

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

小生も#5のご推測に賛成します。 数式バー部(式が出ている)の第4引数の先頭にカーソルを置いて、F2キー(編集)を押して、HM61セルをクリックしてしまったのではないか?自動で選択した番地が入る。 HM61が不自然ではあるが、クリックしたセル番地が入るのは間違いない。 ー 今まで15年ぐらいこのコーナーのエクセル質問を見ているが、類似質問は出ていないと思う。VLOOKUP関数は有名で、使用頻度の多い関数で、システムのバグならもっと質問が続出するはず。 ーー 実利的には、本件は深入りしないことがよい点と思う。 1回限りだろうし、もちろんレコーダー画像も取れないので、不適切なイレギュラー操作は、特に「本人以外の他者」には話題に乗りにくいし、論じにくい。 操作で再現できるものの、質問に限ってほしい。

KAIJI-000
質問者

補足

15年は凄いですね。5の方の補足に対して、反論はしたものの自信がなくなってきました。こちらのミスでしたらすいません。

回答No.5

> 勝手に全然違うセルの エクセルを含むパソコンのソフトは 「勝手に」何かをすることは無いと思っています。 何か人の手で操作をした結果、そうなったものなのは間違いないです。 > 検索の型は0 か 1しかあり得ないですよね? という質問をなさっている事実も踏まえると (質問者さんは第4引数を0or1で指定するようですし)、 今回のケースで(私が)一番考えやすいのは そもそも   VLOOKUP($GW49, $C$54:$D$58,2,1) だったセルを(無意識に)編集状態にし (例えば、数式バーをクリックした、等)、 第4引数である「1」の前にカーソルを移動、 その入力状態のまま「HM6セル」をクリックした結果   VLOOKUP($GW49, $C$54:$D$58,2,HM61) にしてEnterで確定、そのまま保存したのではないか? ということです。 よって、質問の(2)・(3)についても バグ(プログラマーも予期できない不具合)ではありません。 と断じるに躊躇はありません。

KAIJI-000
質問者

お礼

1度は反論しましたが、こちらのミスでしたら申し訳ないです。

KAIJI-000
質問者

補足

>だったセルを(無意識に)編集状態にし ありえないです。 おかしくなっている箇所、行はいっぱいあるからです。 しかも過去のデータのため触ることは無いです。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

回答No.3の一部訂正です。 「検索の型が0以外の値では正の数値のとき順列にソートし、負の数値のときは逆順にソートしておく必要があります。」        ↓ 「検索の型が0以外の値では順列にソートしておく必要があります。」

KAIJI-000
質問者

補足

訂正有難うございます。 ただちょっと僕には難しいので、今はTRUE/FALSEのみ考えたいと思います。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>VLOOKUPの検索の型が勝手に全然違うセルの場所を参照していたのですが 具体的に数式の引数がどのように変化したかを提示して頂かないと原因を推測できません。 >(1)検索の型は0 か 1しかあり得ないですよね? 検索の型(第4引数)は「TRUE」または「FALSE」で指定しますが数値でも代替できます。(0=FALSE、0<>TRUE) 数値で代替するときは近似値の検索になりますので検索範囲(第2引数)の左端の列が整列されていないと正しい値を抽出できません。 検索の型が0以外の値では正の数値のとき順列にソートし、負の数値のときは逆順にソートしておく必要があります。 >1文を上げると以下のようになっていました。 > VLOOKUP($GW49, $C$54:$D$58,2,HM61) 提示の数式は変化前のものでしょうか? 数式が入力されているセル番地も提示して頂けると更に分かり易くなります。 変化前と変化後の数式を提示して頂ければ原因を推定できるかも知れません。 尚、検索の型(HM61)はHM61の値を参照しますが変数で与える意味が有るのですか?

KAIJI-000
質問者

補足

>提示の数式は変化前のものでしょうか? いや元々はFALSEが入っていた(はず)です。 >数式が入力されているセル番地 例で言うとGZ49です。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.2

》 (1)検索の型は0 か 1しかあり得ないですよね? 本来は FALSE か TRUE なのです。それらをそれぞれ数値の 0、1 で代用できるという次第。もっと言えば、貴方は TRUE の方は 1 だけと思い込んでいるようだけど、実は 0 以外なら何の数値でも構わない。試してごらんなさい。 案外知らな人が多いンだなぁ~。ただし、TRUE は省略できます。 》 (2)こんなバグが起こることは有るのでしょうか? 経験したことがないので、アリエナ~イと思っています。 それより、HM61 に化けてどんな不都合がありましたか? セル HM61 が空白または数値の 0 だったら、当該式は「検索の型」の FALSE として動作したはず、0 以外だったら TRUE として動作したでしょ?

KAIJI-000
質問者

補足

>実は 0 以外なら何の数値でも構わない。試してごらんなさい。 案外知らな人が多いンだなぁ~。 知りませんでした。 >HM61 に化けてどんな不都合がありましたか? HM61もまたこの式が入っているからです。 本来参照すべきところではないです。

noname#252888
noname#252888
回答No.1

>>(1)検索の型は0 か 1しかあり得ないですよね?  その2択です。その挙げた1文の場合、省略しているようなのでtrue(1)になっています。  使い方にもよるでしょうけどfalse(0)の方が使いやすいと思います。  trueはピッタリのモノが無いと近似で出してしまうし、検索範囲の左端が昇順になっていないと行けなかったりと使い勝手が悪いので。。。。 >>(2)こんなバグが起こることは有るのでしょうか?  無いでしょうね。。。。 >>(3)このバグを回避する方法は有りますか?  もっと具体的に言ってくれた方が良い回答が出来ると思う。。。。。  その3つのパラメータすべてがずれたのですか?  なら、別なシートからコピーして持ってきていませんか?  別なExcelやSheetからコピーして持ってくるときは貼り方を合わせないと壊れます。  そうでない場合、3番目のパラメータ「列番号」は固定が入ってないけど大丈夫ですかね?1番目のパラメータから察するに下にコピーして使うタイプの使い方だと思いますが、固定($マーク)が入っていないし行番号が違うし、コピーして壊したのかな?と思いました。  素人みないな指摘でスミマセン。

KAIJI-000
質問者

お礼

遅い時間に回答有難うございました。

KAIJI-000
質問者

補足

>その3つのパラメータすべてがずれたのですか? いや TRUE/FALSEのところだけです。ただし箇所は複数でした。 全てのセルではないです。 おかしな所は#VALUE!となっています。 >なら、別なシートからコピーして持ってきていませんか? いや別シートから持ってきてません。 >「列番号」は固定が入ってないけど大丈夫ですかね? 固定ってF4でやる$マークをつけるやつですか? 出来るんですか?

関連するQ&A

  • Vlookupの応用?

    通常、VLOOKUPを使い、検索する場合は、 =VLOOKUP(検索値,範囲,列位置,検索の型)となると思います。 このうち、検索値と範囲(の左端)、列位置をどこかのセルから取得するにはどのようにすればよいでしょうか? たとえば、 A1セルには1と入力(A列を参照)、B1セルには2と入力(B列を参照)、C1セルには3と入力すると、 A3セル=VLOOKUP(A3,B:Z,3,false) となるようにしたいのですが、どのようにすればよいでしょうか。 お願いします。

  • エクセルVLOOKUPの検索値で先頭に$

    エクセル2003です。 =VLOOKUP(D115,'売上'!$A$6:$H$6066,8,FALSE) はよく見かけるパターンで検索値は セルのD115ですが =VLOOKUP($D115,'売上'!$A$6:$H$6066,8,FALSE) このように検索値が $D115 とはどういう意味でどこが検索値になりますか? よろしくお願いします。

  • VLOOKUP関数の「検索値」を範囲で指定する

    エクセルのVLOOKUP関数で、通常は検索値は一意のものを指定しますが、範囲指定しているケースがありびっくりしてしまいました。これはどのようなことなのでしょうか?   A   B 1 品名  単価 2 もも  200 3 りんご 150 4 みかん 100 5 なし   80 とあり、   C   D  1 品名  単価 2 なし 3 もも 4 みかん C列に入れた検索値で、上の表から単価を検索する場合、 通常 =VLOOKUP(C2,$A$2:$B$5,2,FALSE)といった感じで D2のセルに打ち込み、D2のセルの場合は、「検索値はC2」と固定している思うのですが、 =VLOOKUP($C$2:$C$4,A2:B5,2,FALSE)でも 同じ結果になっています。もちろんこれをそのままD4までコピーしても求める通りの結果が出てきます。 検索値は、式においては必ずしも一意で指定する必要はないのでしょうか?

  • VLOOKUPの検索値について

    エクセルでVLOOKUPの関数を使うときの「検索値」に関する質問です。 この「検索値」が数式結果だと反映されませんよね? そこで範囲指定をして、「値だけコピー貼付」をしたのですが、 やっぱり反映されません。 <sheet1>   A      B      C     D 1 123    りんご    10円    XXX 2 124    みかん    20円    YYY 3 125    めろん    30円    ZZZ 4 126    かき     40円    QQQ   ↑   この「123」や「124」が   別のシートからVLOOKUPで「DのセルがXXXなら123にする」   という数式の結果なんです。 この<sheet1>を利用して、別の<sheet2>に VLOOKUPで「“123”と入力したら“りんご”となる」 というようにしたいのですが、 この“123”“124”が数式結果のため、反映されません。 値だけ貼り付けても反映されません。 上書きで“123”“124”と入力すれば反映されますが 数が多いので困っています。 初心者なので、できるだけわかりやすく教えていただけたら 嬉しいです。

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

      A   B     C     D     E 1 あ AAA 2 い  BBB 3 う  CCC 4 え  DDD 5         お   い  =VLOOKUP(C5,A1:A4,2,0) VLOOKUP関数にて、質問です。 検索値候補1=C5のセル 検索値候補2=D5のセル 範囲=A1:B4 E5=関数 (ここに式を入れたい) 検索値候補1がない時は、候補2を検索する そんな式はどうすればよいですか? 素人ですので、おたすけください

  • vlookup関数について

    vlookup関数について教えてください。    A       B         C      D      E        1  あじ    りんご     2  さば    みかん            3  さんま   ばなな        という内容で、D1セルに入力した内容に応じてE1セルに内容を転記させていました。 E1=VLOOKUP(D1$A$1$B3,2,FALSE) 上記で運用していたときはうまくいったのですが、 Cの列にも文字をいれ、E1セルにはCの内容を検索して、B列の内容を転記したいと 思って作りかえるとうまくいきません。 今回の新しいやり方では、 ・A列からの検索はいらない(でも他ファイルから参照されているので、削除、移動はできない) ・E1=VLOOKUP(D1$A$1$C2,2,FALSE)では #N/A となる ・A列からの検索がいらないから、E1=VLOOKUP(D1$B1$C2,1,FALSE) でも #N/A 調べてみたのですがわからなくて・・・ どこがおかしいのか、教えてください。宜しくお願いします。

  • VLOOKUPがうまくいかない

    商品コードを打ち込めば、商品名がでるようにしたくて、VLOOKUPを使ってみましたが、うまくいきません。 最初に商品コード(A23)を打ち込んで、商品名を出したいセル(B23)を検索値に入れます。 範囲は、商品コードと商品名を打ち込んだグラフ(A15:B18)を選択しました。 列番号を2とし、検索の型には何も入れないままOKを押すと、 「数式を計算できません。数式のセル参照は計算結果を参照(循環参照)しています」とでます。 ちなみに、範囲を入力した後F4を押して、OKを押してもだめでした。 どこが違うのでしょうか? また、VLOOKUPでなくても出来るのでしょうか? 教えてください、お願いします。

  • VLOOKUPコピーができない

    お世話になります。 あるブック(ファイル)で作ったVLOOKUP()を別のブックへそのままコピーしたいのですが、コピー元のブックを参照する数式が勝手についてしまいます。「形式を選択をして貼り付け」で「数式のみ」をコピーしてもどうしてもできません。別ブックでもVLOOKUP(検索値,範囲,列番号,検索の型)の「検索値」も「範囲」も同じ場所なので数式を写真のようにコピーしたいのですが可能でしょうか。よろしくお願いします。

  • VLOOKUPの複数参照先

    こんばんは。 エクセルのVLOOKUPでの質問があります。 よろしくお願いします。 1つのbookの中にA,B,C,D...とシートがあります。 Aのシートにて、VLOOKUPを使ってデータの参照をしたいのですが、 B,C,D・・の複数のシートを参照先にしたいのですが、 可能なのでしょうか。 検索先の文字列に応じて検索シート先を変えられれば・・と 思っています。 もう一つ、参照先に目的の値がなかった場合、#N/Aが表示されるのですが、これを1などの数字にすることはできないでしょうか。 お願い致します。

  • エクセルvlookup関数で、検索の型FALSEに該当する全てのデータ

    エクセルvlookup関数で、検索の型FALSEに該当する全てのデータを抽出するには、どうすればよいのでしょうか? emisensei

専門家に質問してみよう