Question: The formula below is what I came up with:

```
=INDEX('111'!A2:A10,SMALL(IF('111'!D2:D10>EOMONTH(TODAY(),2),IF('111'!D2:D10<>"",MATCH('111'!A2:A10,'111'!A2:A10,0))),ROW(A2:A10)-ROW(A1)),ROW(A1))

=INDEX('181'!A2:A10,SMALL(IF('181'!D2:D10>EOMONTH(TODAY(),2),IF('181'!D2:D10<>"",MATCH('181'!A2:A10,'181'!A2:A10,0))),ROW(A2:A10)-ROW(A1)),ROW(A1))

```

Its exactly the same thing, just that the sheets they are referencing on is different.

Is there a way to combine them so that I can get information from both worksheets onto one row instead of 2 rows?

Or should I use VBA?

Answer: 
try this index/aggregate that produces cyclic calculation without having to be entered with cse,

```
=INDEX('111'!A$2:A$10, AGGREGATE(15, 6, ROW($1:$9)/(('111'!D$2:D$10>EOMONTH(TODAY(), 2))*('111'!D$2:D$10<>"")), ROW(1:1)))&
 ":"&
 INDEX('181'!A$2:A$10, AGGREGATE(15, 6, ROW($1:$9)/(('181'!D$2:D$10>EOMONTH(TODAY(), 2))*('181'!D$2:D$10<>"")), ROW(1:1)))

```
Not sure I understand you correctly, but the INDIRECT functionncould solve your issue. It turns a formula entered as a string into a real formula.

So, if you have your sheet names in two cells one below the other, lets say A1:A2, just concatenate parts of your formula together, replacing the 111 and 181 parts with

*“ & A1 & “*

Hope this helps.