segunda-feira, 13 de janeiro de 2025

Trazer em uma célula do Google Sheets,a Data Máxima de um conjunto de células.

Trazer em uma célula do Google Sheets,
a Data Máxima de um conjunto de células.

Vinha utilizando-se =MAX(X1:Y1).

Mas de um tempo para cá começou a retornar erros.

Passei a utilizar o SORTN. Coloquei para retornar o primeiro item de um conjunto de dados após a classificar decrescente. Caso deseje o mínimo, coloque para classificar em ordem crescente.

=SORTN(I3:I;1;0;1;FALSO)

Script para Registro de Edições no Google Sheets

 

Script para Registro de Edições no Google Sheets


Objetivo do Script

Este script tem como função registrar automaticamente a data, hora e a coluna editada na aba "Tratativa" de uma planilha do Google Sheets. O registro é feito em uma coluna específica (coluna 51) para facilitar a identificação das alterações realizadas.

Embora seja possível acessar essas informações clicando com o botão direito sobre a célula editada e verificando o histórico de edições, o script oferece uma forma prática e consolidada de acompanhar diretamente, em uma coluna separada, o que foi alterado nas outras colunas. Serve para um cenário com várias pessoas alterando a planilha.


Configuração Inicial

1. Inserção do Script

  1. Abra a planilha Google Sheets.
  2. Acesse Extensões > Apps Script.
  3. Substitua qualquer conteúdo existente pelo código abaixo:

javascript

function onEdit(e) {

    const sheet = e.source.getActiveSheet(); // Obtém a aba onde a edição ocorreu
    const sheetName = "Tratativa"; // Nome da planilha específica
    const range = e.range; // Local da edição
    const col = range.getColumn(); // Coluna editada
    const row = range.getRow(); // Linha editada
    const timestampCol = 51; // Coluna onde será registrado o horário e a coluna usada

    // Verifica se a edição ocorreu na planilha "Tratativa", entre as colunas 1 e 50, exceto na linha 1
    if (sheet.getName() === sheetName && col >= 1 && col <= 50 && row > 1) {
    const currentDate = new Date();
    const editedColumn = `Coluna ${col}`;
    const timestamp = currentDate.toLocaleString(); // Horário formatado

    // Concatena o horário e a coluna editada
    const logMessage = `${timestamp} - ${editedColumn}`;
    sheet.getRange(row, timestampCol).setValue(logMessage); // Escreve na coluna 51
    }
}

  1. Salve o projeto (ex.: "LogEdit").
  2. O script está pronto para uso.

Funcionamento do Script

  1. Monitoramento de Edições
    • O script é acionado automaticamente sempre que uma célula é editada na aba "Tratativa".
    • Ele monitora edições nas colunas 1 a 50 (A até AX) e ignora alterações na linha 1.
  2. Registro do Log
    • Para cada edição válida:
      • O script captura a data e hora atuais.
      • Identifica a coluna editada.
      • Registra uma mensagem no formato DD/MM/AAAA HH:MM - Coluna X na coluna 51 (coluna AY) da mesma linha.

Personalizações

1. Alterar o Nome da Aba

Caso deseje usar o script em outra aba, altere a linha:

javascript

const sheetName = "NovoNomeDaAba";

2. Modificar o Alcance de Colunas Monitoradas

Para ajustar as colunas que serão monitoradas, edite a condição:

javascript

if (col >= X && col <= Y)

Substitua X e Y pelos números das colunas desejadas.

3. Alterar a Coluna de Registro

Para que o log seja registrado em outra coluna, modifique o valor da variável timestampCol:

javascript

const timestampCol = NovaColuna;


Restrições

  • Aba específica: Apenas monitora a aba chamada "Tratativa".
  • Edições manuais: Não registra alterações feitas por fórmulas ou scripts automáticos.

Exemplo de Uso

  1. Um usuário edita a célula B3 da aba "Tratativa".
  2. O script registra na célula AY3:

13/01/2025 14:35 - Coluna 2


Resolução de Problemas

1. O script não está funcionando.

  • Certifique-se de que a aba tem o nome "Tratativa".
  • Verifique se as edições estão ocorrendo nas colunas 1 a 50 e abaixo da linha 1.

2. O log aparece na coluna errada.

  • Confirme o valor da variável timestampCol.