function getPrecedents(thisFormula){
var exp = /(\w+\!)?\$?[A-Z]{1,}(?:\d+)?(\:?\$?\w+)*(?!\()\b/gm;
var results=[];
var result;
while ((result=exp.exec(thisFormula))!== null){
results.push(result);
}
return results;
}
Из приведенного выше кода я получаю следующие результаты
Trigger_Hires!$AA$15
AD$7
Trigger_Hires!$AC60
Trigger_Hires!$AB60
Rev
Import_Staffing!AD$16
Trigger_Hires!$AC60
Trigger_Hires!$AB60
Customers
Import_Staffing!AD$19
Trigger_Hires!$AC60
Я хотел бы исключить результаты, которые являются просто буквами, такими как Rev и Customers, с измененным регулярным выражением или вторым циклом