So basically to arrive at a cell's value, you start with the DoL quarter for the row, take the same quarter from DoR, move it forward by the number of quarters corresponding to the column, and finally take the value of some measure for this resulting quarter. You'll need an unrelated 'quarter offset' attribute to plot on columns, but then the MDX follows your logic quite literally.

```
(
Lead
(
LinkMember
(
[Dol Time].[Calendar Quarter].CurrentMember
,[Dor Time].[Calendar Quarter]
)
,[quarter offset].[quarter offset].CurrentMember.Key0
)
,[measures].[tri_cell]
)
```

This implies that your codes for DoL and DoR quarters are the same. Also, tri_cell as it is now will repeat the last value for all the following quarters.