- ベストアンサー
エクセルの質問です
表作成をしてるのですが 例えば 予め登録している表が下記のようなもので A B C 1. 名前 登録no. 給料 2. 名前 登録no. 給料 でこのデータから次のような表に反映させたいのですが A B C 1. 登録no. 登録no. 登録no. 2. 名前 名前 名前 3. 給料 給料 給料 というかたちの表に名前を入力したら登録no.も給料も 入るようにしたいのですが。。 VLOOKUPでは出来なくて良い方法があればと思い 質問しました。 よろしくおねがいします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
本質問については、恐らく#2の方の回答で要求を満たしていると思います。 さて、本質問とは直接関係なくて恐縮ですが、先日の質問 http://oshiete1.goo.ne.jp/kotaeru.php3?q=800282 で、コピーでうまく行かないという件についてですが(上記質問が締め切られてましたので、こちらで失礼します)、#2の方が例示された式のように、セル番号を変えたくない部分に $をつければ固定されます。 =IF(COUNTIF(Sheet1!$A:$A,A$2),VLOOKUP(A$2,Sheet1!$A:$C,2,FALSE),"") で言えばCOUNTIF関数の中の「$A:$A,A$2」とかVLOOKUP関数の中の「A$2」や「$A:$C」が該当します。 例えば、「A1」に対して、「A$1」とすると コピーしたときにB1,C1,…のように列が変わることがあっても、行の「1」は固定されたままとなります。 同様に「$A1」とすると、A2,A3,…と行が変わることがあっても、列の「A」は固定されます。 行も列も固定して必ずセルA1だけを参照するようにするには「$A$1」と両方に"$"を入れればOKです。
その他の回答 (5)
- maruru01
- ベストアンサー率51% (1179/2272)
No.2です。 補足欄について。 G14に、 =IF(COUNTIF(登録メンバー!$A:$A,G$15),VLOOKUP(G$15,登録メンバー!$A:$C,2,FALSE),"") G20に、 =IF(COUNTIF(登録メンバー!$A:$A,G$15),VLOOKUP(G$15,登録メンバー!$A:$C,3,FALSE),"") と入力して、それぞれ右へコピー。 ちなみに、No.3のお礼欄について。 今回は、検索列が左端にあるので、問題なくVLOOKUP関数で出来ます。
お礼
できました~~~TT ありがとうございました^^
- imogasi
- ベストアンサー率27% (4737/17069)
Noは重複してないものとします。 (データ)B1:D10に a 1 aa b 2 bb c 3 cc d 4 dd e 5 ff f 6 gg g 7 hh h 8 jj I 9 kk j 10 ll (指定) F1、G1、・・に数値を入れる。 (関数式) F2に=OFFSET($A$1,MATCH(F1,$C$1:$C$10,0)-1,1) F3に=OFFSET($A$1,MATCH(F1,$C$1:$C$10,0)-1,3) を入れる。 F1に4を入れるとF2はd、F3はddが出ます。 横に複写します。 第1行にデータが無いとエラーがでるので =IF(I1="","",OFFSET($A$1,MATCH(I1,$C$1:$C$10,0)-1,1))のようにすれば、防げるでしょう。
お礼
すみませんよくわからなくて。。 どれがどの値になるのか おしえていただけますでしょうか? 下の方の補足で書かせていただいた 質問にできたら回答下さい よろしくおねがいします。
- w-inty
- ベストアンサー率33% (76/227)
VLOOKUPは一番左に検索値がある場合にちゃんと働きますので、そのように変更するか、別関数を使うか、VBAを使うという方法がいいのではないでしょうか?
お礼
そうなんですね。。左端にないとだめなんですよね。。 VBAはむずかしそうなので 無理かな。。。 有難うございました
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 >名前を入力したら登録no.も給料も >入るようにしたいのですが。。 ということは、A2に名前を入れると、A1とA3に値が表示されるということでしょうか? それなら、元の表がSheet1にあるとして、下の表のシートのA1に、 =IF(COUNTIF(Sheet1!$A:$A,A$2),VLOOKUP(A$2,Sheet1!$A:$C,2,FALSE),"") と入力して右へコピー また、A3に、 =IF(COUNTIF(Sheet1!$A:$A,A$2),VLOOKUP(A$2,Sheet1!$A:$C,3,FALSE),"") と入力して右へコピー これで出来ると思います。
補足
解答有難うございます。 参考にしてチャレンジしてみたいのですが どれがどの値なのか ちょっと分からないので 教えていただけますでしょうか? 実際の値を書いておきます。 ”登録メンバー”というシートにA欄に名前B欄に登録no. C欄に給料で290行まで登録内容が入ってます。 で、別シートのG15に名前を入れたら、G14に登録No.、G20に給料が入るような形にしたいのですが。。 どうぞよろしくお願いします。
- dejiji-
- ベストアンサー率38% (327/858)
参照する表は名前欄が昇降順で並んでいますか。 VLOOKUPで出来ると思いますが。
お礼
うまく反映されないのです。。 いろいろ試してみてるのですが^^; ありがとうございました
お礼
コピーの問題解決できました^o^ ありがとうございます~ エクセルほんと奥が深くて 難しいです。 良ければ下の方で補足に書いた 質問にも解答頂けるとうれしいです。 まだまだ勉強中なので よろしくお願いします。