Hi Dane,
You can use custom Javascript to look at each 'Amount' value, check to see which 'Type' is selected in that row, and add like 'Types' together into your 'Totals' fields. Here is one way of achieving that:
$(document).ready(function(){
$('form').click(function(){
var hotel = 0, airfare = 0, carrental = 0, gas = 0, meals = 0, grocery = 0;
var amount = '[id^=Field5\\(]';
var type = 'select[id^=Field6\\(]';
$(amount).each(function(){
var index = $(amount).index(this);
if ($(type).eq(index).val() == 'Hotel'){hotel += parseFloat($(this).val());}
else if ($(type).eq(index).val() == 'Airfare'){airfare += parseFloat($(this).val());}
else if ($(type).eq(index).val() == 'Car Rental'){carrental += parseFloat($(this).val());}
else if ($(type).eq(index).val() == 'Gas'){gas += parseFloat($(this).val());}
else if ($(type).eq(index).val() == 'Meals'){meals += parseFloat($(this).val());}
else if ($(type).eq(index).val() == 'Grocery'){grocery += parseFloat($(this).val());}
});
$('.hotel input').val(hotel);
$('.airfare input').val(airfare);
$('.carrental input').val(carrental);
$('.gas input').val(gas);
$('.meals input').val(meals);
$('.grocery input').val(grocery);
});
function parseNumber(n) {
var f = parseFloat(n); //Convert to float number.
return isNaN(f) ? 0 : f; //treat invalid input as 0;
}
});
You can copy and paste this into your Javascript section on the 'CSS and Javascript' tab.
In the code, replace the value of 'amount' (line 6) with your amount column's selector (see below).

For instance, if your Amount id="q21", your selector would be '[id^=Field21\\(]'
The same goes for the variable 'Type' (line 7). Change '6' to whichever id number your 'Type' column is.
Finally, go to the 'Advanced' tab for each of your single-line fields and enter the field's name into the 'CSS class' section. For instance, my 'Car Rental' css class is 'carrental'.

Let me know if this works for you or if you have any questions along the way!