I gather that you have this relationship:
Months----<ExpenseDetails (LayoutTable----<PortalTable )
Note that layouts do not store data, tables do. Layouts provide a means, via a table occurrence (box in manage | database | Relationships) to access the data in one primary table plus any number of related tables.
First the specific question:
The trick is to keep the expense details in the ExpenseDetails table, but use your new layout to access the data in the new ways that you want.
You need a field in MonthlyExpenseDetails that reports the year. If you have a date field that records the expense date, this calculation field, cYear, can return the year: Year ( ExpenseDate ). Then you can add a Years table and related it like this:
Years::Year = ExpenseDetails::Year
YOu can then add 12 portals to expenseDetails on a layout that specifieds "Years" in Layout Setup | Show Records From. Each portal can be given a different portal filter expression to filter out all related records except those of a specified category.
Now to suggest an alternative.
If you build a report layout based on expense details, you can produce a summary report that looks like this:
Category 1 total
Category 2 total
and so forth for each category
and so one for each category for each month
This report can report data for any range of dates for any number of existing categories. Adding or removing categories can be done without having to redesign the report layout. This type of report is done by basing the report layout on ExpenseDetails and using summary fields inside of sub summary parts to group and sub total the information.