プロが教えるわが家の防犯対策術!

A     B  C     D
商品コード 注文数  商品コード 注文数
aaa     15  ccc     4
bbb      12  ddd     6
ccc     10  aaa     22
ddd     6   eee     10
eee     5   bbb     7
fff       8 kkk 9
kkk 7 lll 4

上記のようなデータを
以下のように同じ商品コードを横並びに表示させたいのですが
どういったcountifとかで試したのですが上手くいかず、どのような関数を使えば可能でしょうか?

A     B  C     D
商品コード 注文数  商品コード 注文数
aaa     15  aaa     22
bbb      12  bbb     7
ccc     10  ccc     4
ddd     6   ddd     6
eee     5   eee     10
fff       8
kkk 7 kkk 9
lll 4

宜しくお願い致します。

A 回答 (3件)

こんな式で、下にドラッグコピー



=IFERROR(VLOOKUP($A14,$C$4:$D$10,1,0),"")
=IFERROR(VLOOKUP($A14,$C$4:$D$10,2,0),"")
「Excelで同一のデータを抽出して横並び」の回答画像1
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます!!
出来ました!すごく作業が捗ります!!

お礼日時:2020/10/13 09:30

質問内容を問はず、多重投稿(multi-post)は”Q&A”サイト界では忌み嫌はれまっせ~ッ!特に同時マルチポストに於いてをや!

    • good
    • 0
この回答へのお礼

教えて頂きありがとうございます!!

お礼日時:2020/10/13 09:29

こんばんは!



関数でやる場合、別列であれば可能です。
例えば、E・F列に表示するとします。
(1行目は項目行でデータは2行目以降にあるとします)

E2セルに
=IF(COUNTIF($C:$C,$A2),VLOOKUP($A2,$C:$D,COLUMN(A1),0),"")

という数式を入れフィルハンドルでF2セルへ → そのまま下へコピー!

※ どうしても元のC・D列に表示したい!となると
関数では無理で、VBAになります。

一例です。

Sub Sample1()
 Dim i As Long
 Dim c As Range

  Range("C:D").Insert
   Range("A1").Resize(, 2).Copy Range("C1")
    For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
     Set c = Range("E:E").Find(what:=Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
      If Not c Is Nothing Then
       With Cells(i, "C")
        .Value = c
        .Offset(, 1) = c.Offset(, 1)
       End With
      End If
    Next i
     Range("E:F").Delete
End Sub

※ VBAの場合、元データが変化しますので
別シートでマクロを試してください。

※ A・B列よりC・D列の方がデータ数が多い場合はA列最終行までで止まってしまいます。m(_ _)m
    • good
    • 0
この回答へのお礼

マクロでの作成方法も教えてくださってありがとうございます!
参考にさせて頂き来ます!!

お礼日時:2020/10/13 09:28

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