AKB48の推しメンをセンターにできちゃうかもしれない!? >>

すいません。質問なのですが
VLOOKUPで=VLOOKUP(検索値,範囲,列番号,FALSE)
の式の中で列番号を増やしていくことは可能でしょうか?
たとえばA1では=VLOOKUP(検索値,範囲,2,FALSE)であった式がB1では=VLOOKUP(検索値,範囲,3,FALSE)に
なるみたいなかんじです。
手動でなくそういう式にできたらと思って
ご相談させていただきました。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

私の直感ですが、この問題の背後にある問題の解決に


VLOOKUP関数を使うことがふさわしいのか、疑問に思います。
ズバリ、解決したい問題はどう言うものですか。
よく自分のまず思いついた考えの延長線でものを解決しようとして、複雑な難しい質問になっている場合があります。
LOOKUPやINDEXやMATCHなどで解決する問題ではないかと
思いました。
質問のようなニーズを見たことがない。もし私の勉強の足りない場合は済みません。
    • good
    • 0

A1に



=VLOOKUP(検索値,範囲,COLUMN(B1),FALSE)

です。
    • good
    • 2

COLUMN()で列の位置を指定できます。


COLUMN()がA1にある場合は1を返します。B1の時は2
ですから
=VLOOKUP(検索値,範囲,COLUMN()+1,FALSE)
のように調整してやればいいかと...

範囲が不規則な場合は対応する列を用意してください。
例えば1行目に列数があるなら
=VLOOKUP(検索値,範囲,A$1,FALSE)
1行目が項目のタイトルなら
=VLOOKUP(検索値,範囲,MATCH(A$1,範囲,0),FALSE)
範囲は元の表の項目部分を指定する。
    • good
    • 0

A2 =VLOOKUP(検索値,範囲,A1,FALSE)


B2 =VLOOKUP(検索値,範囲,B1,FALSE)

てなかん時でA1=2、B1=3としておけば如何でしょうか?
    • good
    • 1

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVlookで引っ張ってきた結果を横にうまくコピーするには・・・

エクセル初心者です。
=VLOOKUP(A1,Sheet1!A:E,1,false) と言う関数で
横にコピーするたびに列番号を1234とずらすにはどのようにすればよいでしょうか。

また、falseの部分をfalseとするのと0とするのとでは結果にどのようなちがいが出来るのでしょうか。

どうぞよろしくお願いいたします。

Aベストアンサー

多分、VLOOKUPで検索された行の各列のデータを表示したいのでしょう。
ご要望の方法だと、各列のデータを引っ張るために、それぞれの列でいちいちVLOOKUPを実行しています。
要は、どの行なのかが解ればいいので、発想を変えて、
1.A1セルのデータをSheet1のA列から探して、その行番号を取得する。
2.その行番号を元にセル参照をする。
3.なお,Sheet1のA列に同じデータがない事が条件。
を行います。ただしワーク列が必要になりますが....
B列をワーク列仁使うとして、B1に
=SUMPRODUCT((Sheet1!$A$1:$A$65535=A1)*ROW(Sheet1!$A$1:$A$65535))
引っ張りたいデータが、Sheet1のA列~E列なら
C1に、
=INDIRECT("Sheet1!R"&B1&"C"&(COLUMN()+2),0)
として、G1までヨコにコピーでOKかと...
「Sheet1!$A$1:$A$65535」と変な指定をしているのは、配列が全行を指定できないので、最終行番号65536から1を引いているのです。

> falseの部分をfalseとするのと0とする
どちらでも可能なようです。特に違いはありません。なお、trueは1です。

多分、VLOOKUPで検索された行の各列のデータを表示したいのでしょう。
ご要望の方法だと、各列のデータを引っ張るために、それぞれの列でいちいちVLOOKUPを実行しています。
要は、どの行なのかが解ればいいので、発想を変えて、
1.A1セルのデータをSheet1のA列から探して、その行番号を取得する。
2.その行番号を元にセル参照をする。
3.なお,Sheet1のA列に同じデータがない事が条件。
を行います。ただしワーク列が必要になりますが....
B列をワーク列仁使うとして、B1に
=SUMPRODUCT((Sheet1!$A$1:...続きを読む

Qコピー&ペーストすると、VLOOKUPの “範囲” が、ずれてしまう

こんにちは。いつもお世話になっております。とかく昨日からは幾度か質問させて頂いておりまして、都度ご丁寧な回答を承っており、感謝しております。

さて、早速ですが今度は下記の事で悩んでおります。

◆エクセルバージョン → エクセル2003

◆VLOOKUPの入ったセルをコピーして貼り付けすると “範囲”が自動的に “1”ずつプラスされて式が変わってしまう為、都度、手修正で直している。
 これを改善したい。

【具体例】
SHEET名 = 顧客名一覧 に対して

A1に お と入力すると B1に 小野 と表示される。
A2に か と入力すると B2に 加藤 と表示される。
A3に さ と入力すると B3に 斉藤 と表示される。

ように作成しております。
この 顧客名一覧Sheetの B1 に
 =VLOOKUP(A1,VLOOKUP用シート!A1:B100,2,0)
という関数式を入れているので、これをコピーし、B2~B100まで貼り付けをしたのですが、そうすると

B2には =VLOOKUP(A2,VLOOKUP用シート!A2:B101,2,0) と入ってしまい、
B3には =VLOOKUP(A3,VLOOKUP用シート!A3:B102,2,0) と入ってしまいます。

何故、この数式の中の“範囲”が勝手にプラス1ずつされてしまうのか…これを防ぎたい。

現在は、100個ほどペーストしたものに対して、全て直接入力で“範囲”を正しい VLOOKUP用シート!A1:B100 と修正している状態です。

どなたかお手隙の方いらっしゃいましたら、どうぞご教授の程、お願い致します。

こんにちは。いつもお世話になっております。とかく昨日からは幾度か質問させて頂いておりまして、都度ご丁寧な回答を承っており、感謝しております。

さて、早速ですが今度は下記の事で悩んでおります。

◆エクセルバージョン → エクセル2003

◆VLOOKUPの入ったセルをコピーして貼り付けすると “範囲”が自動的に “1”ずつプラスされて式が変わってしまう為、都度、手修正で直している。
 これを改善したい。

【具体例】
SHEET名 = 顧客名一覧 に対して

A1に お と入力すると B1に 小野...続きを読む

Aベストアンサー

範囲は相対的な位置で記録されていると考えてください。
そんなわけで
 =VLOOKUP(A1,VLOOKUP用シート!A1:B100,2,0)
を下にコピーすると
 =VLOOKUP(A2,VLOOKUP用シート!A2:B101,2,0)
と下に範囲がずれてくるのです。
右にコピーすると
 =VLOOKUP(B1,VLOOKUP用シート!B1:C100,2,0)
となります。

同じ計算を同列の行や列で繰り返し行なう場合は入力の手間を省くことができるので、便利な機能です。
例:
 C1 =A1+B1
C1セルを下にコピーすると
 C2 =A2+B2
 C3 =A3+B3 

ずれないようにするには、絶対参照の形式で範囲を指定する必要があります。
列方向を固定するには列番号の前に "$" マークを付けます。
行方向を固定するには行番号の前に "$" マークを付けます。
 =VLOOKUP(A$1,VLOOKUP用シート!A$1:B$100,2,0)
これで下へコピーしてもずれることはなくなります。
ただし列番号に "$" マークを付けていないので、横へコピーすると列番号は変わります。

範囲は相対的な位置で記録されていると考えてください。
そんなわけで
 =VLOOKUP(A1,VLOOKUP用シート!A1:B100,2,0)
を下にコピーすると
 =VLOOKUP(A2,VLOOKUP用シート!A2:B101,2,0)
と下に範囲がずれてくるのです。
右にコピーすると
 =VLOOKUP(B1,VLOOKUP用シート!B1:C100,2,0)
となります。

同じ計算を同列の行や列で繰り返し行なう場合は入力の手間を省くことができるので、便利な機能です。
例:
 C1 =A1+B1
C1セルを下にコピーすると
 C2 =A2+B2
 C3 =A3+B3 

ずれないようにするに...続きを読む

QEXCEL VLOOKUP関数の式を隣の列にコピーする(列番号が異なる)と、うまくその式が使えない

すみません、つい先ほど、一度投稿したかと思ったんでですが、
アップされていないので、また投稿しました。もし、2重投稿なら、すぐに削除します。

質問:
数式のコピー(オートフィル)は、理解しているのですが、
VLOOKUPで設定した数式を列番号が、変わる項目へもコピーして
使用できるかと、コピーしたんです。そして、列番号だけ変更したんですが、うまく動きません。 数式そのものは、同じなんで列番号だけ
変えたら使えそうなんですが。。。だめですかね。。
ちなみに、その数式をコピーする際ににちょっとコツがあったような。。
単純なオートフィルでもなく、形式を選択して貼り付け(数式)でもNG.
たしか、あったような。。数式バーで作業するような、、うーーー。

どなたか、わかるかた教えてください!
それとも、列番号がことなる場合には、最初から式を設定するのがベストですか。。
こんな私に一発ご指導を!お待ちしております。

Aベストアンサー

こんにちは。maruru01です。

具体的な配置がわからないので、適当に設定します。
仮に、参照するデータ範囲がSheet2のA1:G100として、
検索値がA列で、B~G列に参照先のデータを引っ張ってくるとします。
B1に、

=VLOOKUP($A1,Sheet2!$A$1:$G$100,COLUMN(B1),FALSE)

と入力して、右へ下へコピーします。

基本的には、参照範囲は行列とも絶対参照で、検索値は列のみ絶対参照で、ということだと思います。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QexcelのVLOOKUPで検索値を2つにできますか?

excelのVLOOKUPで検索値を2つにしたいです
私の知っているVLOOKだと下記のことは対応できます
例えば、A列に会社名、B列に住所、C列に電話番号 とあった場合
「住所が検索値と同一なら電話番号を表示しなさい」という指示は出せます

そこで質問です
「会社名と住所が検索値と同一なら電話番号を表示しなさい」
というような、複数の検索値を持つ事はできないのでしょうか?

参考になるURLなどでも結構ですので、ご存知の方よろしくお願いいたします

Aベストアンサー

元の表をA列に会社名、B列に住所、C列に「=A2&B2」、D列に電話番号のようにして
=VLOOKUP(会社名&住所,$D$2:$C$100,2,FALSE)
のようにすれば可能です。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QVLOOKUP関数の範囲に、複数の範囲を指定したい

VLOOKUP関数の範囲に、複数の範囲を指定したいのですが方法がわかりません。
例えば同じシート内のC3:L8の範囲とM3:V8の範囲とW13:AF18の範囲を同時に
検索範囲として指定したいと考えております。

選択範囲に名前をつけて定義し、それを範囲として指定してみても、
なかなか上手くいきません。

効果的な方法があれば、御教鞭頂きたく思います。

Aベストアンサー

ごめんなさい。手抜きですね。
以下が条件です。

検索値がA1にある
検索範囲の中で検索値に合致する値が複数ない

=IF(ISERROR(VLOOKUP(A1,C3:L8,2,0)),IF(ISERROR(VLOOKUP(A1,M3:V8,2,0)),IF(ISERROR(VLOOKUP(A1,W13:AF18,2,0)),"",VLOOKUP(A1,W13:AF18,2,0)),VLOOKUP(A1,M3:V8,2,0)),VLOOKUP(A1,C3:L8,2,0))

最初の範囲で検索値に一致する物がなければ、次の範囲を探します。
その繰り返しです。
最終的にどこにもなければ空白です。

返す値の列番号は範囲の中で左から2番目です。
たとえば最初の範囲なら、D列の値が帰ります。

QEXCELで別のシートのデータを参照して返す方法

ちょっとしたことなのですが、うまく式が書けなくて悩んでいます。

作業用のシート1と参照用のシート2があり、
シート1のA列には
 あおき
 あべ
 いぐち
 いはら
などと文字列(名前)が入力されています。
こちらは今度の野球のスタメンだと思ってください。

シート2にはA列とB列があって、
わたなべ 55
いぐち  43
あおやま 67
いはら  41
などと、名前:背番号が羅列されています。こちらが参照用の全選手の背番号リストだと思ってください。

ここで、 シート1のB列に、A列の名前に対応した背番号を返したいのです。
なので、シート1のB列に
IF(シート1のA列の値=シート2のA列のいずれかの値)だったとき、
適合したシート2の行のB列の値を表示する
という式を入れたいのですが、どのように式を書けばよいでしょうか。

すみませんがどなたか教えてください。

Aベストアンサー

私もその場合はVLOOKUP関数を使用しています。

「B1」=VLOOKUP(A1,Sheet2!$A:$B,2,0)

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング