[[20211126090527]] 『関数でデータを抽出』(みき) >>BOT

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『関数でデータを抽出』(みき)

こんにちは。
C列の番号のデータを基にJ4〜L8の範囲中、K列のコメントとL列の判定を
横方向に並べて表示する関数をご教授願います。
よろしくお願いします。

     C       D        E       F     G         J       K        L
3   番号  コメント1    判定1  コメント2 判定2      番号  コメント     判定         
4   1256    青色です  ●    白  ▲      1256  青色です ●   
5   #012    みかん   ▲      バナナ ×       #012    みかん  ▲
6   1001  黒色       ×                       #012    バナナ   ×
7                           1001  黒色   × 
8                           1256    白    ▲

< 使用 Excel:Excel2016mac、使用 OS:Windows10 >


 D3セル:=IF(C4="","",IFERROR(INDEX(K:K,AGGREGATE(15,6,ROW($4:$20)/(J$4:J$20=C4),1)),""))
 E3セル:=IF(C4="","",IFERROR(INDEX(L:L,AGGREGATE(15,6,ROW($4:$20)/(J$4:J$20=C4),1)),""))
 D4セル:=IF(C4="","",IFERROR(INDEX(K:K,AGGREGATE(15,6,ROW($4:$20)/(J$4:J$20=C4),2)),""))
 E4セル:=IF(C4="","",IFERROR(INDEX(L:L,AGGREGATE(15,6,ROW($4:$20)/(J$4:J$20=C4),2)),""))
 と入力して下へフィルコピーではどうだろうか?

(ねむねむ) 2021/11/26(金) 09:21


Sub test()
    Dim lastRow As Long, lastRow2 As Long, i As Long, j As Long, cnt As Long
    Dim no As String

    lastRow = Range("C4").End(xlDown).Row
    lastRow2 = Range("J4").End(xlDown).Row

    For i = 4 To lastRow
        no = Cells(i, 3).Value
        cnt = 0
        For j = 4 To lastRow2
            If no = Cells(j, 10).Value Then
                Cells(i, cnt * 2 + 4).Value = Cells(j, 11).Value
                Cells(i, cnt * 2 + 5).Value = Cells(j, 12).Value
                cnt = cnt + 1
            End If
        Next
    Next
End Sub
(vber) 2021/11/26(金) 09:22

 なお私の式ではJ列からL列のデータが代々20行目までに対応している。
 もっと入力される可能性があるならば式中の$20部分をすべて大きくしてくれ。
(ねむねむ) 2021/11/26(金) 09:23

[[20211119140007]]『関数:同じ番号のデータ一覧を横に抽出』(さゆり)

これの続きですね。
名前を使い捨てするのは過去の解決済みの関連質問の参照の妨げにもなりあなたのためにもならないのでおすすめしません。

D4=IFERROR(INDEX($K$4:$K$8,AGGREGATE(15,6,ROW($A$1:$A$5)/($J$4:$J$8=$C4),ROUNDUP(COLUMN(A1)/2,0))),"")
E4=IFERROR(INDEX($L$4:$L$8,AGGREGATE(15,6,ROW($A$1:$A$5)/($J$4:$J$8=$C4),ROUNDUP(COLUMN(A1)/2,0))),"")

(きまぐれおじさん) 2021/11/26(金) 09:24


 おまけ。
 C4セル:=IFERROR(INDEX(J:J,AGGREGATE(15,6,ROW($4:$20)/(COUNTIF(INDIRECT("J4:J"&ROW($4:$20)),J$4:J$20)=1),ROW(A1))),"")

(ねむねむ) 2021/11/26(金) 09:36


先生方 いつもありがとうございます。
勉強になりました。
今後とも宜しくお願いします。

(みき) 2021/11/26(金) 10:20


コメント返信:

[ 一覧(最新更新順) ]


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