A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data.
Looks like your condition only checks one side: (CHOOSECOLS(x,12)<12). To make it “less than 3 OR greater than 12”, you should explicitly combine two logical tests with a plus + (which acts like OR in array formulas).
Replace that part with:
((CHOOSECOLS(x,12)<3)+(CHOOSECOLS(x,12)>12))
So your full formula becomes:
=LET(x,VSTACK(
IF(COUNTA('Sales Pipeline Data'!E3:E5079)>0,OFFSET('Sales Pipeline Data'!E3,0,0,COUNTA('Sales Pipeline Data'!E3:E5079),15),{"","","","","","","","","","","","","","",""})
),
y,SORT(
FILTER(
CHOOSECOLS(IF(x="","",x),1,12),
(CHOOSECOLS(x,1)<>"")*
(CHOOSECOLS(x,7)<>"")*
(CHOOSECOLS(x,9)="")*
((CHOOSECOLS(x,12)<3)+(CHOOSECOLS(x,12)>12))
),
2,-1
),
IF(IFERROR(ROWS(y),0)<>0,y,"")
)
The key idea is that * acts like AND, while + acts like OR in these array conditions.
If the above response helps answer your question, remember to "Accept Answer" so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.
hth
Marcin