[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『関数でデータを抽出』(みき)
こんにちは。
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
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
これの続きですね。
名前を使い捨てするのは過去の解決済みの関連質問の参照の妨げにもなりあなたのためにもならないのでおすすめしません。
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.