Estou tentando alterar a célula de referência na função DATE em um loop if no Apps Script. A célula que estou referenciando está formatada da seguinte maneira: "2020-01-31 14:26:58." Aqui está o que obtive até agora:
var s = SpreadsheetApp.getActive().getSheetByName("Prep");
var data = s.getRange("I2:I").getValues();
var data_len = data.length;
for(var i=0; i<data_len; i++) {
if(data[i][0].length !== 0) {
s.getRange(i+2,4).activate();
s.getCurrentCell().setFormula('=TEXT(DATE(2020,MID(I2,6,2),1),"mmmm")');
} else {
}
}
Isso funciona bem se todos os dados forem do mesmo mês. No entanto, estou tentando fazer com que I2 atualize para I3, I4...IX conforme eu passo pelo loop, para que, se os dados fizerem referência a mais de um mês, eles sejam alterados de acordo. Tentei pesquisar soluções no Google e assistir a vídeos e postagens, mas não consigo descobrir.
Exemplo de Markdown (o texto em negrito é o que eu quero que a saída mostre):
Link | Tipo | Ano | Mês | Primeiro nome | Sobrenome | Gênero | Idade | Aplicação enviada |
---|---|---|---|---|---|---|---|---|
- | Requerente | 2020 | Janeiro | John | Corça | M | 40 | 2020-01-31 14:26:58 |
- | Requerente | 2020 | Fevereiro | Jill | Bradley | F | 45 | 2020-02-15 11:50:06 |
- | Requerente | 2020 | Marchar | Jane | Alice | F | 41 | 2020-03-31 10:36:04 |
Você pode usar o valor de
i
para definir o valor dinamicamente:Outra opção seria definir uma matriz de fórmulas e usar apenas uma vez setFormulas
E uma terceira opção é não usar um script, mas uma fórmula de matriz em D1 (primeiro, exclua todas as fórmulas naquela coluna: