I think a Shared variable will do the trick here. When creating variables in Crystal Report you can have a scope of Local, Global, or Shared. Local variables are in scope within a single formula or expression. Global variables are in scope within different sections of a report. Shared variables are in scope throughout the different sections of the report and any sub-reports as well.
Begin by creating a Formula Field in your Expenses sub-report. This formula field will need to create the variable and populate it with a value it reads from a field on your sub-report. Since I don't know the names of your fields, I will make one up called {Table.ExpenseTotal}. Now we can write the code for the formula field as follows:
WhilePrintingRecords;
Shared NumberVar expense := {Table.ExpenseTotal};
The next step is to place this formula field into the sub-report. It should be placed somewhere in the same section of the sub-report that contains the {Table.ExpenseTotal} field. This formula field will also display its value on the sub-report, so you will probably want to set its Suppress property to hide this field.
Now you will need to create a new formula field in your main report. The code for this formula field will be as follows:
WhilePrintingRecords;
Shared NumberVar expense;
The next step is to place this formula field into the main report. It must be placed in a section that follows the section containing the sub-report. At this time the formula field should be displaying the value of the expense variable that was created and populated in your sub-report.
To apply this to your report you will want to substitute the field that contains the Sum of expenses for the example field name I used.
There are some limitations to consider when using variables like this. These variables do not exist until the report is being printed, which is why the "WhilePrintingRecords" declaration is used. This means these formula fields may not be used in Summary Fields, Running Total Fields, or Record Selection because all of these are parsed before the report begins printing. You should also be mindful of which sections you place the Formula Fields within. The code for each variable is very simple usually, but the placement within sections and how Crystal Reports moves from section to section while printing is what determines the looping structure for how the values of your variable are updated.