Below are the fields:
Id as "Opportunity Owner ID",
User_Theater__c as "User Theater",
User_Sales_Region__c as "User Sales Region",
User_Sales_Group__c as "User Sales Group"
FROM [lib://Salesforce QVD/user.qvd]
Id as "LT Opportunity ID",
Name as "LT Opportunity Name",
OwnerId as "LT Opportunity Owner ID",
Amount/(Lookup('CR','IsoCode',[CurrencyIsoCode],'Currency')) as "LT Converted Amount",
Date(floor(CloseDate)) as "LT Opportunity Close Date",
Lookup('User Theater', 'Opportunity Owner ID', [OwnerId],'Owner') as "LT Theater",
Lookup('User Sales Region', 'Opportunity Owner ID', [OwnerId],'Owner') as "LT Region"
FROM [lib://Salesforce QVD/Opportunity.qvd] (qvd)
Team as "LT Theater",
//concatenate Year and Quarter field
[Year] & [Quarter] as "Year Quarter",
FROM [lib://SharePoint - Marketing Finance/Shared Documents\2017 Checkbook Registers\Global\GLOBAL checkbook.xlsx]
Apart from NewOpportunity and LastTouchOpp, you have another table (on top of Checkbook, let's call it XXXX) that has the field CampaignID. That table is linked to LastTouchOpp by CampaignID, as well as the LT Theater field through Checkbook, hence caused the loop.
Remove or rename LT Theater in Checkbook, or the CampaignID in the XXXX table should solve the problem.