Nope, you can't use offset, since you are doing operation in array and you've only filled single column.
If you want to do operation in array, you can simply change it like.
Dim dataIn, dataOut
Dim rCol as Long, i as Long, last as Long
last = Cells(Rows.Count, "R").End(xlUp).Row
dataIn = Range("G3:R" & last).Value2
dataOut = Range("AB3:AB" & last).Value2
rCol = UBound(dataIn, 2)
For i = 1 To UBound(dataIn)
If dataIn(i, rCol) <> "" Then dataOut(i, 1) = "MISC EXPENSE"
If dataIn(i, rCol) Like "*12X12X12*" Then dataOut(i, 1) = "OFFICE EXPENSE"
If dataIn(i, rCol) Like "*12X12X10*" Then dataOut(i, 1) = "OFFICE EXPENSE"
If dataIn(i, rCol) Like "*17.5X12X3*" Then dataOut(i, 1) = "OFFICE EXPENSE"
Since column G is first column in array. You can check it like... If dataIn(i, 1) <> "" Then ....
Bookmarks