Fill report table from data table
Mon May 23 2022 04:42:38 GMT+0000 (Coordinated Universal Time)
Saved by @bobgorbold
let sheet = workbook.getWorksheet("Report");
let summary = workbook.getWorksheet("2022");
let rangeSummary = summary.getUsedRange();
let rangeSummaryValues = rangeSummary.getValues();
let colCount = rangeSummary.getColumnCount();
let rowCount = rangeSummary.getRowCount();
let issuesTable = sheet.getTable("Issues");
let summaryTable = sheet.getTable("SummaryTable");
let summaryTableRange = summaryTable.getRange();
let summaryTableRows = summaryTableRange.getRowCount();
let summaryTableValues = summaryTableRange.getValues();
let summaryTable2 = sheet.getTable("SummaryTable2");
let summaryTable2Range = summaryTable2.getRange();
let summaryTable2Rows = summaryTable2Range.getRowCount();
let summaryTable2Values = summaryTable2Range.getValues();
let dateStartTemp = sheet.getCell(1,0).getValue();
let dateCalculator = (dateStartTemp - 2)%7;
let dateStart = dateStartTemp - dateCalculator;
let findRow = rangeSummary.getRow(0);
let findRowVal = findRow.getValues();
let startCell = -1;
for(let i=1; i<colCount; i++){
if(findRowVal[0][i]===dateStart){
startCell = i;
}
}
if(startCell === -1){
console.log("could not find date!")
}
//searches the report for each name in the data table
let success = false;
for(let i=1;i<summaryTableRows;i++){
for (let j=3;j<rowCount;j++){
if (rangeSummaryValues[j][0]==="Active"&& summaryTableValues[i][1]===rangeSummaryValues[j][4]){
rangeSummary.getCell(j, startCell + 1).setValue(summaryTableValues[i][2]);
rangeSummary.getCell(j, startCell + 2).setValue(summaryTableValues[i][3]);
rangeSummary.getCell(j, startCell + 3).setValue(summaryTableValues[i][4]);
success =true;
break;
}
}
//This Reports any one who wasn't in the big report
if (!success) {
issuesTable.addRow(null,[summaryTableValues[i][1] + " was not found in report"]);
summaryTableRange.getRow(i).getFormat().getFill().setColor("FFFF00")
}
success = false;
}
//fills in the bt totals
for (let i = 1; i < summaryTable2Rows; i++) {
for (let j = 3; j < rowCount; j++) {
if (summaryTable2Values[i][0] === rangeSummaryValues[j][4]) {
rangeSummary.getCell(j, startCell + 1).setValue(summaryTable2Values[i][1]);
rangeSummary.getCell(j, startCell + 2).setValue(summaryTable2Values[i][2]);
rangeSummary.getCell(j, startCell + 3).setValue(summaryTable2Values[i][3]);
break;
}
}
}
Searches for matching names



Comments