[[20040918173501]] 『別シートから同じ物を抽出して...』(まさまさ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『別シートから同じ物を抽出して...』(まさまさ)

 Sheet1に
   A  B  C  
 1  123 HS660 
 2  124 HS760
 3 125 HS870
 4 126 HS970
 5 127 HS980
      とあり
 Sheet2に
   A  B  C
 1 125 HS870  2
 2  123 HS660  5
 3  127 HS980  1
  と、不規則なデーターが入るのですが、Sheet1のA,Bと同じSheet2のCの値をSheet1の
  Cに入力されるようにしたいのですが...初心者でやり方が分かりませんm(__)m。
  どうか教えて下さい。宜しくお願いします。


 vlookup関数を使いましょう。
 vlookup関数は1つの検索キーをもとに検索しますので、
 Sheet2に作業列を作ります。
 具体的には、Sheet2を次のようにします。
   A  B  C      D
 1 125 HS870  =A1&B1 2
 2  123 HS660  =A2&B2 5
 3  127 HS980  =A3&B3 1

 そして、Sheet1に
   A  B  C  
 1  123 HS660 =vlookup(A1&B1,Sheet2!$C$1:$D$3,2,false)
 2  124 HS760 =vlookup(A2&B2,Sheet2!$C$1:$D$3,2,false)
 3 125 HS870 =vlookup(A3&B3,Sheet2!$C$1:$D$3,2,false)
 4 126 HS970 =vlookup(A4&B4,Sheet2!$C$1:$D$3,2,false)
 5 127 HS980 =vlookup(A5&B5,Sheet2!$C$1:$D$3,2,false)
 と入力します。
 もっと美しい回答がほかの方から出てくるとは思いますが、
 とりあえず、いかがでしょうか?(まこ)

ありがとう御座いました。さっそくやってみます。(まさまさ)


 美しいかどうかは別にして、列を追加しない方法です。
 参考までにどうぞ。
 Sheet1のC1に以下の式を入れてコピーしてください。
 =SUMPRODUCT((Sheet2!$A$1:$A$3=A1)*(Sheet2!$B$1:$B$3=B1),(Sheet2!$D$1:$D$3))
 (川野鮎太郎)


皆さんありがとう御座います。あともう一つお聞きしたいのですが・・・#N/Aと出たところを0表示にしたいのですが・・・自分なり過去ログを拝見してチャレンジしてみたのですが旨くいきませんでした。参考にしたのはこちらです。IF(ISNA(VLOOKUP(検査値,範囲,列番号,FALSE)),0,VLOOKUP(検査値,範囲,列番号,FALSE))宜しくお願いします。


 それで合ってそうですけどね。
 IF(ISNA(VLOOKUP(検査値,範囲,列番号,FALSE)),0,VLOOKUP(検査値,範囲,列番号,FALSE))
                     ↑ここの括弧の数は合ってますか。
 (川野鮎太郎)


 横からお邪魔します。
お暇な時でいいから、試してね。さっき見てぱっと作っただけだから、、
あってるかどうかは不明(;^_^A アセアセ・・・
Sheet1
A	B	C
123	HS660	
124	HS760	
125	HS870	
126	HS970	
127	HS980
Sheet2	
A	B	C
125	HS870	2
123	HS660	5
127	HS980	1
Sheet3
A	B	C
123	HS660	5
125	HS870	2
127	HS980	1
になりました。あってる??v(=∩_∩=)v
Sub てすと()
Dim MyA As Variant, MyB As Variant, MyAry() As Variant, MyTitle As Variant
Dim i As Long, j As Long, k As Long, n As Long
    With Sheet1
        MyTitle = .Range("A1:C1").Value
        MyA = .Range("A2", .Range("A65536").End(xlUp)).Resize(, 3).Value
    End With
    With Sheet2
        MyB = .Range("A2", .Range("A65536").End(xlUp)).Resize(, 3).Value
    End With
    ReDim Preserve MyAry(1 To UBound(MyA, 1), 1 To UBound(MyA, 2))
    For i = LBound(MyA, 1) To UBound(MyA, 1)
        For j = LBound(MyB, 1) To UBound(MyB, 1)
            If MyA(i, 1) = MyB(j, 1) And MyA(i, 2) = MyB(j, 2) Then
                k = k + 1
                    For n = 1 To 3
                        MyAry(k, n) = MyB(j, n)
                    Next
            End If
        Next
    Next
    With Sheet3.Range("A1")
        .CurrentRegion.ClearContents
        .Resize(, 3).Value = MyTitle
        .Resize(k, 3).Offset(1).Value = MyAry
        .CurrentRegion.Columns.AutoFit
    End With
Erase MyA, MyB, MyAry, MyTitle
End Sub
(SoulMan)


説明不足で申し訳ありません・・・#N/Aと出たところは0表示になるのですが、数字の出たところにこの式を入れると#NAME?と出てしまいます・・・どうしたらよいのでしょうか?
括弧の数はとりあえず合っております。  (まさまさ)


 #NAME?が出るって事は関数として認識されてないので、どこか変な文字や、記号が含まれてませんか。
 可能ならその式をここに貼り付けてみてください。
 (川野鮎太郎)


たびたび申し訳ありません・・・式は次のようになっています 
=IF(ISNA(VLOOKUP(A6&C6,Sheet2!$C$1:$D$3,2,FALSE)),0,volookup(A6&C6,Sheet2!$C$1:$D$3,2,FALSE))  宜しくお願いします。  (まさまさ)


 最後の関数のつもりの volookup は無いと思いますが。(Σ)


すみません・・・(;^_^A 直して再度やってみました 
=IF(ISNA(VLOOKUP(Sheet2!$C$1:$D$3,2,FALSE)),0,VLOOKUP(Sheet2!$C$1:$D$3,2,FALSE)) と入れました。しかし、#VALUE!となってしまいます・・・  
(まさまさ)


 前と数式が違っていますが・・・(VLOOKUPの引数の数が合いません) 
 落ち着いて・・・(Hatch)


 ('-'*)(,_,*)('-'*)(,_,*) ウンウン
 あわてなくて良いですから^^
 IF(ISNA(VLOOKUP(A1&B1,Sheet2!$C$1:$D$3,2,FALSE)),0,VLOOKUP(A1&B1,Sheet2!$C$1:$D$3,2,FALSE))
         ↑A1&B1が抜けてます            ↑
 (川野鮎太郎)


出来ました!! みなさん本当に本当にありがとう御座いました。これかもっと勉強しますん。また何かありましたらご教授おねがいしますv(∩_∩)v

 w(☆o◎)wがぁ〜〜ん!!小じわがとれとう(×_×;)グシュン
v(=∩_∩=)v
(SoulMan)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.