Aggregation functions like SUM operate using LIST formatted line items on TEXT. This is because text strings are not meaningful and therefore are not able to direct the function as to what items to include in the aggregation.
Also, the target of the SUM must be dimensioned by the LIST being used in the mapping.
To use the TEXT data as a mapping in your model you need to convert the contents of the line item into a list.
Use ISFIRSTOCCURRENCE and a boolean line item to filter your module to only show unique entries. Create a saved view only showing the TEXT data and use the boolean to filter out all duplicates.
Create your mapping that will inform the SUM function using this updated list - SUM.
Your mapping table should contain the same dimensions as the source and contain a list formatted line item containing the relevant mapping. Here, you would format the line item using your updated list.
The target should be dimensioned by the list. The SUM function will aggregate the data as per the mapping table.
As for the automating the upload refer to @Misbah link.