Use this formula
Since I am aware that you want a formula that does not require movement, here it is.
Paste it F2
With Arrayformula
=ArrayFormula(LAMBDA(vv,s, IF(s<>1,,VLOOKUP(vv,
{ QUERY(UNIQUE(vv), " Select * where Col1 is not null "),
BYROW(QUERY(UNIQUE(vv), " Select * where Col1 is not null "), LAMBDA(c, SUMIF(vv, "="&c, E2:E)))}, 2,1)))(
ARRAYFORMULA(LAMBDA(u, LAMBDA(l, IF(A2:A="",,VLOOKUP(ROW(E2:E),FILTER({ROW(E2:E),l},l<>""),2,TRUE)))(IF(u="",,COUNTIFS(u, "<>", ROW(E2:E), "<="&ROW(E2:E)))))(ArrayFormula(IF(
IF(A2:A="",, { IF(D2:D="",,BYROW(
VLOOKUP(ROW(D2:D),
{ ArrayFormula(ROW(D2:D)),BYROW(ROW(D2:D), LAMBDA(x, TEXTJOIN(CHAR(10), , BYROW(SEQUENCE(4,1,x), LAMBDA(v, FILTER(D2:D, ROW(D2:D)=v))))))}, 2,0),
LAMBDA(g, LAMBDA(r, SUMPRODUCT(BYROW( r, LAMBDA(v, lambda(x,y,INDEX(x, y))(r,1)=v)))=4)(TRANSPOSE(SPLIT(g, CHAR(10)))))))*
IF(C2:C="",, BYROW(
VLOOKUP(ROW(C2:C),
{ ArrayFormula(ROW(C2:C)),BYROW(ROW(C2:C), LAMBDA(x, TEXTJOIN(CHAR(10), , BYROW(SEQUENCE(4,1,x), LAMBDA(v, FILTER(C2:C, ROW(C2:C)=v))))))}, 2,0),
LAMBDA(g, LAMBDA(r, SUMPRODUCT(BYROW( r, LAMBDA(v, lambda(x,y,INDEX(x, y))(r,1)=v)))=4)(TRANSPOSE(SPLIT(g, CHAR(10)))))))})<>1,,1)))),
ArrayFormula(IF(A2:A="",, { IF(D2:D="",,BYROW(
VLOOKUP(ROW(D2:D),
{ ArrayFormula(ROW(D2:D)),BYROW(ROW(D2:D), LAMBDA(x, TEXTJOIN(CHAR(10), , BYROW(SEQUENCE(4,1,x), LAMBDA(v, FILTER(D2:D, ROW(D2:D)=v))))))}, 2,0),
LAMBDA(g, LAMBDA(r, SUMPRODUCT(BYROW( r, LAMBDA(v, lambda(x,y,INDEX(x, y))(r,1)=v)))=4)(TRANSPOSE(SPLIT(g, CHAR(10)))))))*
IF(C2:C="",, BYROW(
VLOOKUP(ROW(C2:C),
{ ArrayFormula(ROW(C2:C)),BYROW(ROW(C2:C), LAMBDA(x, TEXTJOIN(CHAR(10), , BYROW(SEQUENCE(4,1,x), LAMBDA(v, FILTER(C2:C, ROW(C2:C)=v))))))}, 2,0),
LAMBDA(g, LAMBDA(r, SUMPRODUCT(BYROW( r, LAMBDA(v, lambda(x,y,INDEX(x, y))(r,1)=v)))=4)(TRANSPOSE(SPLIT(g, CHAR(10)))))))}))))

Sources
Notes
If you want to delve deep, consider looking at the previous edit.
Let's make it a named function (˘◡˘ )
See how to using Google Sheets new formulas

Paste this in formula definition
=ArrayFormula(
LAMBDA(
vv,
s,
IF(
s <> 1,
,
VLOOKUP(
vv,
{ QUERY(
UNIQUE(
vv
),
"Select*whereCol1isnotnull"
),
BYROW(
QUERY(
UNIQUE(
vv
),
"Select*whereCol1isnotnull"
),
LAMBDA(
c,
SUMIF(
vv,
"=" & c,
range
)
)
)},
2,
1
)
)
) (
ARRAYFORMULA(
LAMBDA(
u,
LAMBDA(
l,
IF(
key = "",
,
VLOOKUP(
ROW(
range
),
FILTER(
{ ROW(
range
),
l},
l <> ""
),
2,
TRUE
)
)
) (
IF(
u = "",
,
COUNTIFS(
u,
"<>",
ROW(
range
),
"<=" &
ROW(
range
)
)
)
)
) (
ArrayFormula(
IF(
IF(
key = "",
,
{ IF(
date = "",
,
BYROW(
VLOOKUP(
ROW(
date
),
{ ArrayFormula(
ROW(
date
)
),
BYROW(
ROW(
date
),
LAMBDA(
x,
TEXTJOIN(
CHAR(
10
),
,
BYROW(
SEQUENCE(
4,
1,
x
),
LAMBDA(
v,
FILTER(
date,
ROW(
date
) = v
)
)
)
)
)
)},
2,
0
),
LAMBDA(
g,
LAMBDA(
r,
SUMPRODUCT(
BYROW(
r,
LAMBDA(
v,
lambda(
x,
y,
INDEX(
x,
y
)
) (
r , 1
) = v
)
)
) = 4
) (
TRANSPOSE(
SPLIT(
g,
CHAR(
10
)
)
)
)
)
)
) *
IF(
scan = "",
,
BYROW(
VLOOKUP(
ROW(
scan
),
{ ArrayFormula(
ROW(
scan
)
),
BYROW(
ROW(
scan
),
LAMBDA(
x,
TEXTJOIN(
CHAR(
10
),
,
BYROW(
SEQUENCE(
4,
1,
x
),
LAMBDA(
v,
FILTER(
scan,
ROW(
scan
) = v
)
)
)
)
)
)},
2,
0
),
LAMBDA(
g,
LAMBDA(
r,
SUMPRODUCT(
BYROW(
r,
LAMBDA(
v,
lambda(
x,
y,
INDEX(
x,
y
)
) (
r , 1
) = v
)
)
) = 4
) (
TRANSPOSE(
SPLIT(
g,
CHAR(
10
)
)
)
)
)
)
)}
) <> 1,
,
1
)
)
)
) ,
ArrayFormula(
IF(
key = "",
,
{ IF(
date = "",
,
BYROW(
VLOOKUP(
ROW(
date
),
{ ArrayFormula(
ROW(
date
)
),
BYROW(
ROW(
date
),
LAMBDA(
x,
TEXTJOIN(
CHAR(
10
),
,
BYROW(
SEQUENCE(
4,
1,
x
),
LAMBDA(
v,
FILTER(
date,
ROW(
date
) = v
)
)
)
)
)
)},
2,
0
),
LAMBDA(
g,
LAMBDA(
r,
SUMPRODUCT(
BYROW(
r,
LAMBDA(
v,
lambda(
x,
y,
INDEX(
x,
y
)
) (
r , 1
) = v
)
)
) = 4
) (
TRANSPOSE(
SPLIT(
g,
CHAR(
10
)
)
)
)
)
)
) *
IF(
scan = "",
,
BYROW(
VLOOKUP(
ROW(
scan
),
{ ArrayFormula(
ROW(
scan
)
),
BYROW(
ROW(
scan
),
LAMBDA(
x,
TEXTJOIN(
CHAR(
10
),
,
BYROW(
SEQUENCE(
4,
1,
x
),
LAMBDA(
v,
FILTER(
scan,
ROW(
scan
) = v
)
)
)
)
)
)},
2,
0
),
LAMBDA(
g,
LAMBDA(
r,
SUMPRODUCT(
BYROW(
r,
LAMBDA(
v,
lambda(
x,
y,
INDEX(
x,
y
)
) (
r , 1
) = v
)
)
) = 4
) (
TRANSPOSE(
SPLIT(
g,
CHAR(
10
)
)
)
)
)
)
)}
)
)
)
)

How to use

Used functions: Checkout Google Sheets function list
ARRAYFORMULA - LAMBDA - IF - VLOOKUP - QUERY - UNIQUE - BYROW - SUMIF - ROW