Depois de analisar sua pergunta um pouco mais de perto, determinei que você precisaria escrever um script do Google para fazer isso.
Tudo o que você precisa fazer é: abrir o editor de scripts do Google, criar um novo projeto, colar isso na parte inferior do script, renomear a "Reconciliação" para qualquer nome da planilha e salvá-lo . O onEdit()
é um gatilho incorporado em scripts do Google que faz o trabalho de atualização após uma edição, e o checkReceived()
é um exemplo de rolagem manual que faz o trabalho que você procura. Eu adaptei este "exemplo" à sua imagem fornecida. Você verá que pode adicionar quantos projetos desejar e isso os cobrirá da mesma forma. Você pode alterar os detalhes para combinar com o que mais precisar (ou seja, você também deve notar que chamei a planilha mestre de "Mestre"), mas isso deve funcionar para você. Por favor, deixe-me saber como é isso.
function checkReceived() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
//The following to ensures you don't run this on another spreadsheet
if(spreadsheet.getName()=="Reconciliation") //<--This is the name of the spreadsheet I used, change it for yours.
{
var maxIntervalSS = spreadsheet.getNumSheets();
var theMasterSheet = spreadsheet.getSheetByName("Master");
var masterSheetID = theMasterSheet.getIndex();
var sheets = spreadsheet.getSheets();
var thisRow = theMasterSheet.getRange(1,1); //Arbitrary for initialization
//Need to Clear existing master data.
theMasterSheet.getDataRange().clear();
//Will use a flag to repopulate header.
var firsttime= true;
//Iterates through each spreadsheet
for(var checkingSheetIterator = 0; checkingSheetIterator<maxIntervalSS; checkingSheetIterator++)
{
var currentSheet = sheets[checkingSheetIterator];
//Ignores the iteration if ID equals the master sheet
if(currentSheet.getIndex()!=masterSheetID)
{
//Getting currentSheet's data
var currentRange = currentSheet.getDataRange();
//Iterates through the currentSheet's data
for(var rows = 1; rows<=currentSheet.getLastRow(); rows++)
{
//Repopulating header on first time.
//"8" for column H, containing the Status
if(currentRange.getCell(rows,8).getValue()=="Received"|| firsttime) //<-Note this is your keyword and specified location; "8".
{ //Add to bottom of sheet
theMasterSheet.appendRow([currentRange.getCell(rows,1).getValue(),currentRange.getCell(rows,2).getValue(),
currentRange.getCell(rows,3).getValue(),currentRange.getCell(rows,4).getValue(),
currentRange.getCell(rows,5).getValue(),currentRange.getCell(rows,6).getValue(),
currentRange.getCell(rows,7).getValue(),currentRange.getCell(rows,8).getValue(),
currentRange.getCell(rows,9).getValue(),currentRange.getCell(rows,10).getValue(),
currentRange.getCell(rows,11).getValue()]);
firsttime=false;
}
}
}
}
}
};
function onEdit(){
checkReceived();
};
O seguinte é um exemplo da configuração da planilha. Observe que o nome da planilha é Reconciliação (parte superior da imagem) e as guias (ou seja, folhas) na parte inferior da página são denominadas "Mestre", "Projeto1" e "Projeto2". Por favor, note que eu não me incomodei com a formatação condicional, pois não deve ter qualquer influência sobre o resultado.