Any way to shorten my formula? It works when I do it manually in Excel, but not when I use VBA.
=IF($AA$1, IF(ISNA(VLOOKUP(LEFT($C4,7)+0,PKEY,2,FALSE)),IF(ISNA(VLOOKUP(LEFT($C4,4)+0,PKEY,2,FALSE)), "UNDEFINED",VLOOKUP(LEFT($C4,4)+0,PKEY,2,FALSE)),(INDEX(PKEY,SMALL(IF(OFFSET(PKEY,0,0,ROWS(PKEY),1)=(LEFT(C4, 7)+0), ROW(OFFSET(PKEY,0,0,ROWS(PKEY),1))-ROW( OFFSET(PKEY,0,0,1,1) )+1, ROW(OFFSET(PKEY,ROWS(PKEY)-1,0,1,1))+1),COUNTIF(OFFSET(PKEY,0,0,ROWS(PKEY),1),(LEFT(C4, 7)+0))),2))), IF(ISNA(VLOOKUP(LEFT($C4,4)+0,PKEY,2,FALSE)), "UNDEFINED", VLOOKUP(LEFT($C4,4)+0,PKEY,2,FALSE)))
and I'm using this VBA:
With Worksheets("Revenue")
Set my_range = .Range("B4:B" & .Range("C65536").End(xlUp).Row)
my_range.FormulaArray = "=IF($I$1, IF(ISNA(VLOOKUP(LEFT($C4,7)+0,PKEY,2,FALSE)), _
IF(ISNA(VLOOKUP(LEFT($C4,4)+0,PKEY,2,FALSE)), ""UNDEFINED"",VLOOKUP(LEFT($C4,4)+0,PKEY,2,FALSE)), _
(INDEX(PKEY,SMALL(IF(OFFSET(PKEY,0,0,ROWS(PKEY),1)=(LEFT(C4, 7)+0), _
ROW(OFFSET(PKEY,0,0,ROWS(PKEY),1))-ROW( OFFSET(PKEY,0,0,1,1) )+1, _
ROW(OFFSET(PKEY,ROWS(PKEY)-1,0,1,1))+1),COUNTIF(OFFSET(PKEY,0,0,ROWS(PKEY),1), _
(LEFT(C4, 7)+0))),2))), IF(ISNA(VLOOKUP(LEFT($C4,4)+0,PKEY,2,FALSE)), ""UNDEFINED"", _
VLOOKUP(LEFT($C4,4)+0,PKEY,2,FALSE)))"
End With
Thanks in advance, not sure what to do here. :/
Bookmarks