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