アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル関数の質問です。エクセル2007を使っています。
シート1にたくさんの数値のリストがあり、シート2に別の順序でデータを持ってきた場合です。
例)シート1
A行にリファレンスナンバー901から1000まであるとします。1の列にたくさんの項目があります。
No.  面積積  価格  建築年  建築月
901  1000  10000  2007  1
902  15000  20000  2005  5
903  2000  500000  1998  9
904  3000  600000  1990  4
905  5500  100000  2010  12
...
シート2にVLOOKUPで、ランダムに並んだリファレンスナンバーに並べ替えるのですが、列番号を入れ直すのが面倒です。というのは、項目が変わるにつれ、左クリックでドラッグ(?)しても列番号は最初の“2”のままなので、3,4,5と項目ごとに一つ一つ変えなければならないのです。
何かいい方法はないでしょうか?

シート2
No.  面積  価格  建築年  建築月
905  =VLOOKUP(G2,$A$2:$E$6,2,0)

よろしくお願い致します。

A 回答 (8件)

#4お礼より


>でも、これもG2が基準なのは何でですか??
質問の数式に
>=VLOOKUP(G2,$A$2:$E$6,2,0)
と(間違いがあるが)書いてあるので。

>そして、なぜB2が出てくるのですか?
列番号の2を得るため

で、INDEX,MATCHを使えば
=IF($G2="","",INDEX(Sheet1!B$2:B$101,MATCH($G2,Sheet1!$A$2:$A$101,0)))
となります。

おまけで計算速度向上手段として、B2:F2セルを選択して
=IF(G2="","",INDEX(Sheet1!B$2:F$101,MATCH($G2,Sheet1!$A$2:$A$101,0),))
[Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)
    • good
    • 0
この回答へのお礼

#4お礼より
>でも、これもG2が基準なのは何でですか??
>>質問の数式に
>=VLOOKUP(G2,$A$2:$E$6,2,0)
>>と(間違いがあるが)書いてあるので。

納得。。。。

MATCHを使うんですね。
面白いですねぇ。これも試してみます。
ありがとうございました!

お礼日時:2010/07/12 17:15

回答も沢山出ていて、いまさらであるが


こんなのVLOOKUP関数利用で直ぐ出てくる課題のことでは。
シート1とシート2の項目の順が変わらないなら、第3引数をColumn()-X(Xは定数)で右方向に式複写すれば仕舞いでしょう。
検索表が
G2:J4
1xua
2yvb
3zwc
なら
式をB列に入れる場合は =VLOOKUP($A2,$G$2:$J$4,COLUMN())
のように2-->bでそのまま
これを右方向に式を複写。
(注意)$A2のように$をつけておくこと
連続しないとこの手法は使えない。
ーー
例データ 検索表 G1:J4
-ABC
1xua
2yvb
3zwc
A1:D4に(A2:G4は元は空白セル)
-ACB
1xau
2ybv
3zcw
  があるとき
B2は
=VLOOKUP($A2,$G$2:$J$4,MATCH(B$1,$H$1:$J$1,0)+1,FALSE)
これをD2まで式複写
B2:D2の式を下方向に式複写
結果
上記A1:D4の通り。
http://www.brace-up.net/2009/08/vlookup.html
ーーー
この質問内容Columnの利用、質問では複雑に書いているが
Googleで「vlookup 列番号」で照会すると
2番目に
http://takashixxx.blog88.fc2.com/blog-entry-57.h …
ガ見つかる。質問をする前に照会キーワードを考えてWEB照会すること。
エクセルの関数の質問など、エクセルが身近になり、WEB記事が充実して今ではWEBでほとんどやれる時代だ。
    • good
    • 0
この回答へのお礼

>質問をする前に照会キーワードを考えてWEB照会すること。


分からないなりに調べたのですが、調べ方が間違っていたようで、って言い訳のように聞こえるんでしょうが、それでも出てこなかったので、みなさんにうかがったのです。。。

そんなに怒らなくても・・・・

お礼日時:2010/07/12 17:18

No5です すいません余計な物が・・・^^;



範囲指定した後は数式バーをクリックして
 =IF($G2="","",VLOOKUP($G2,Sheet1!$A:$D,COLUMN(Sheet1!B$2),0))
この式を直接入れ、「Ctrl」+「Ener」を押します
範囲指定した後G2セルをクリックしてしまうと選択範囲がG2セルに戻ってしまうので・・・

失礼しました <(_ _)>
    • good
    • 0
この回答へのお礼

これもできました!これ多分、G2ではなくF2ですよね?
ありがとうございました!!
皆さんすごいですね!!

お礼日時:2010/07/12 16:08

シート2のG2セルからI???セルまで範囲選択しておきます


数式バーに次の式を入れます
【G2】=IF($G2="","",VLOOKUP($G2,Sheet1!$A:$D,COLUMN(Sheet1!B$2),0))
式を入れたら「Ctrl」キーを押したまま「Enter」キーを押します

例えば【G2~I2000】行までを範囲選択しておいて数式バーを一度クリックし、入力できる状態にして
【G2】=IF($G2="","",VLOOKUP($G2,Sheet1!$A:$D,COLUMN(Sheet1!B$2),0)) ←この式を入れます
式を入れたら「Ctrl」キーを押したまま「Enter」キーを押します
範囲指定されたセル全体に一瞬で数式が入ります

一応シート1の65536行目までの入力に対応した数式を作ってみました
「エクセル関数の質問です。エクセル2007」の回答画像5
    • good
    • 0

回答No2です。


ごめんなさい初歩的なミスをしてしまいました。
H2セルには次の式を入力して右横方向にオートフィルドラッグします。

=IF($G2="","",VLOOKUP($G2,Sheet1!$A$2:$E$6,COLUMN(B2),0))
    • good
    • 0
この回答へのお礼

これもできました!ありがとうございました!
でも、これもG2が基準なのは何でですか??そして、なぜB2が出てくるのですか?

お礼日時:2010/07/12 15:37

回答NO2です。


初歩的なミスをしてしまいました。
H2セルには次の式を入力して右横方向にオートフィルドラッグします。

=IF($G2="","",VLOOKUP($G2,Sheet1!$A$2:$E$6,COLUMN(B2),0))
    • good
    • 0

シート2のG2セルに905と入力して関連するデータをその横の列に表示させるのでしたらH2セルには次の式を入力して右横方向にオートフィルドラッグします。



=IF(G2="","",VLOOKUP(G2,Sheet1!$A$2:$E$6,COLUMN(B2),0))
    • good
    • 0

一例です。



905がG2に
=VLOOKUP(G2,$A$2:$E$6,2,0)の式がH2にあるものとして

式を次のように変えてみてはいかがでしょう。
=VLOOKUP($G2,$A$2:$E$6,COLUMN()-6,0)
後は縦横にドラッグするだけです。
    • good
    • 0
この回答へのお礼

すごい!できました!!ありがとうございました!でも何でG2なんですか???

お礼日時:2010/07/12 15:36

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