• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vlookup関数と入力規則(?)の続きです)

vlookup関数と入力規則の使い方・解説|QNo.2539383

このQ&Aのポイント
  • vlookup関数と入力規則について理解が不十分なので、実際の数式の解説と応用方法を教えてください。
  • 別のシートに入力した場合に表示させる方法についても教えてください。
  • 入力規則を利用することで、同じシートのデータが離れた場所に入力しても表示させる方法も知りたいです。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

こんにちは、前回の質問のNo.2で回答した者です。私が回答した上2つの式に関して回答します。 まず先に、あなたが仰るようにこれが違うシートでなく、同じシートであれば、手順としてはもっと簡単になります。OFFSET()やMATCH()関数の中では、Sheet2!A1というような別シートでの参照ができないのですが、その範囲に名前をつけて、その名前を指定すれば違うシートのセル範囲を参照できるようになるので、上記のような回答になりました。 しかし、同じシート内の場合でもやっていることはあまり変わらないので、式の複雑さはあまり変わらないでしょう。 それで、式の解説ですが、基本はOFFSET()とMATCH()の組み合わせです。 OFFSET(A,y,xY,X) という式は、Aという番地から下にy、右にx移動した場所のセルから、下にYセル、右にXセルだけ選択したエリアを指します。Y,Xを省略した場合Aで指定した領域と同じ大きさになります。ここではAには1つのセルだけを指定し、Y、Xは省略しているので、上記の式で表されるのは1セルだけです。 まず、別のシートのA1に「鉛筆」と入力したとします。これがSheet1のA列(上では「名前」という名前をつけてます)の何行目にあるかを取り出します。これが、 MATCH($A1,名前,0) という式です。「名前」の範囲(Sheet1のA列)からA1の値(鉛筆)が何行目にあるか、という意味になります。「鉛筆」が1行目にある場合、1となり、2行目にあるときは2となります。 これを上のOFFSET()関数の説明のyの値に使っています。しかし、下にy行目移動する、ということは、「鉛筆」が1行目にあるなら、y=0でないといけません。あくまで基準から何行離れているか、という数値をしているので、上記のMATCH()関数から-1した値を指定しています。 ここまでくると、あとは簡単です。上のOFFSET()のxに当たる数値を1とすると、1つ右の、2とすると2つ右のセルを指し、それはそれぞれ「鉛筆」という行のB列、C列、すなわち今年度のMAX、MINなわけです。 その値を「鉛筆」の横に入力された値と比較しています。 簡略化して書くと、 =($B1>最大値)+($B1<最小値) ということを表しているわけです。この書き方は、 =OR($B1>最大値,$B1<最小値) と同じことで2つの条件のどちらかが成立したら、という意味になります。 2つ目の式も全く同じで、OFFSET()のxにあたる部分に3と4を指定、つまりD列とE列を指定しています。これをC1と比較しているのです。 ここまででセルは「$B1」と列は絶対参照($つき)で行は相対参照($なし)で書いてます。こうしておくと、B列全体を指定して、1番上の式を入力すると、2行目では式の中のB1が自動的にB2に、3行目ではB3に変わってくれます。 ちょっと長くなってしまいましたが、おわかりいただけましたでしょうか。

rian_2005
質問者

お礼

ちょっと分からないところをお聞きしたいのですが… 「名前」の範囲(Sheet1のA列)からA1の値(鉛筆)が何行目にあるか、という意味になります。「鉛筆」が1行目にある場合、1となり、2行目にあるときは2となります。 これを上のOFFSET()関数の説明のyの値に使っています。しかし、下にy行目移動する、ということは、「鉛筆」が1行目にあるなら、y=0でないといけません。あくまで基準から何行離れているか、という数値をしているので、上記のMATCH()関数から-1した値を指定しています。 途中まで、A1は項目名で、それがOFFSETでの「基準」となっているのだと理解していましたが、この部分を読み返してみると、そういう意味ではないのでしょうか?

rian_2005
質問者

補足

再度大変丁寧で詳しい説明をありがとうございました。 ひとつずつ頭の中とエクセルの画面で整理してみたいと思います。 今度はわからない箇所があったら締め切る前に質問させていただくようにしたいと思います。 申し訳ありませんでした。 また、よろしくお願いします。

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

> 途中まで、A1は項目名で、それがOFFSETでの「基準」となっているのだと理解していましたが、この部分を読み返してみると、そういう意味ではないのでしょうか? いや、そういう意味であってます。1行目は項目名なのに、例として「鉛筆」が「1行目」にある場合、と説明したため混乱させてしまったかもしれません。 「鉛筆」が3行目にあると、番地としてはA3になるわけですが、これは基準であるA1から「2つ」離れているから、MATCH()で取得した行数から-1しないといけない、ということをご説明したつもりでした。 またわからないことがある場合は補足をお願いします。

rian_2005
質問者

お礼

遅くなりましたが、何とか理解することができました。 ham_kamoさま、ありがとうございました。

rian_2005
質問者

補足

すぐに回答下さいましてありがとうございます。 もうしばらく時間をかけて、自分のものにしようと思います。 本当に感謝致します。

関連するQ&A