SHEETS_FORMULA - Inserir Fórmulas no Google Sheets
O que é este Node?
O SHEETS_FORMULA é o node responsável por inserir fórmulas do Google Sheets em células, permitindo cálculos automáticos e referências dinâmicas.
Por que este Node existe?
Fórmulas automatizam cálculos e mantêm dados atualizados. O SHEETS_FORMULA existe para:
- Cálculos Automáticos: Somar, multiplicar, calcular médias
- Referências Dinâmicas: Buscar dados de outras células/abas
- Funções Avançadas: VLOOKUP, IF, SUMIF, QUERY
- Atualização Automática: Recalcular quando dados fonte mudam
Como funciona internamente?
Quando o SHEETS_FORMULA é executado, o sistema:
- Autentica: Valida tokens OAuth2
- Prepara fórmula: String começando com "="
- Executa write: Usa spreadsheets.values.update() com valueInputOption='USER_ENTERED'
- Google Sheets processa: Interpreta e executa a fórmula
- Retorna resultado: Confirma inserção
Código interno (usa SHEETS_WRITE com valueInputOption='USER_ENTERED'):
case 'formula':
const formulaResult = await sheets.spreadsheets.values.update({
spreadsheetId: data.spreadsheetId,
range: data.range,
valueInputOption: 'USER_ENTERED', // Crucial para interpretar fórmulas
requestBody: {
values: [[data.formula]], // Deve começar com "="
},
});
return {
success: true,
updatedCells: formulaResult.data.updatedCells,
};
Quando você DEVE usar este Node?
Use SHEETS_FORMULA quando precisar cálculos automáticos e referências:
Casos de uso
- Totais: "=SUM(B2:B100)" para somar vendas
- Condicionais: "=IF(C2>1000,'Alto','Baixo')" para classificar
- Busca: "=VLOOKUP(A2,Produtos!A:C,2,FALSE)" para buscar preço
- Agregação: "=SUMIF(D:D,'Concluído',E:E)" para somar condicionalmente
Quando NÃO usar SHEETS_FORMULA
- Valores fixos: Use NODE SHEETS_WRITE diretamente
- Cálculos complexos externos: Processe e escreva resultado
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| operation | string | Sim | Deve ser "formula" |
| spreadsheetId | string | Sim | ID da planilha |
| range | string | Sim | Célula onde inserir fórmula |
| formula | string | Sim | Fórmula começando com "=" |
| accessToken | string | Sim | Token OAuth2 |
| refreshToken | string | Sim | Token OAuth2 refresh |
Exemplo 1: Calcular Total de Vendas
Objetivo: Inserir fórmula SUM para totalizar vendas
JSON para Importar
{
"name": "Inserir Fórmula Total",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "sheets_1",
"type": "google_sheets",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Fórmula Total",
"parameters": {
"operation": "formula",
"spreadsheetId": "1Vendas_XYZ",
"range": "Vendas!E101",
"formula": "=SUM(E2:E100)",
"accessToken": "{{google_access_token}}",
"refreshToken": "{{google_refresh_token}}"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "✅ Fórmula de total inserida"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "sheets_1" },
{ "source": "sheets_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada:
Sistema: ✅ Fórmula de total inserida
Exemplo 2: VLOOKUP para Buscar Preço
Objetivo: Inserir VLOOKUP para buscar preço de produto
JSON para Importar
{
"name": "VLOOKUP Automático",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "sheets_1",
"type": "google_sheets",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Fórmula VLOOKUP",
"parameters": {
"operation": "formula",
"spreadsheetId": "1Estoque_XYZ",
"range": "Pedidos!C2",
"formula": "=VLOOKUP(B2,Produtos!A:C,3,FALSE)",
"accessToken": "{{google_access_token}}",
"refreshToken": "{{google_refresh_token}}"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "🔍 VLOOKUP configurado para buscar preços"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "sheets_1" },
{ "source": "sheets_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada:
Sistema: 🔍 VLOOKUP configurado para buscar preços
Resposta do Node
{
"success": true,
"updatedCells": 1
}
Boas Práticas
✅ SIM: - Sempre comece fórmulas com "=" - Use referências absolutas ($A$1) quando necessário - Teste fórmulas manualmente antes de automatizar - Documente fórmulas complexas
❌ NÃO: - Não esqueça o "=" no início - Não use referências circulares - Não crie fórmulas muito complexas (divida em etapas)
Dicas
💡 Dica 1: Fórmulas comuns do Google Sheets:
- =SUM(A1:A10) - Soma
- =AVERAGE(A1:A10) - Média
- =IF(A1>100,"Alto","Baixo") - Condicional
- =VLOOKUP(A1,B:D,2,FALSE) - Busca vertical
- =SUMIF(A:A,"Vendido",B:B) - Soma condicional
💡 Dica 2: Use valueInputOption='USER_ENTERED' para que o "=" seja interpretado como fórmula, não texto.
💡 Dica 3: Referências:
- Relativa: A1 (muda ao copiar)
- Absoluta: $A$1 (não muda ao copiar)
- Mista: $A1 ou A$1
Próximo Node
→ SHEETS_WRITE - Escrever valores fixos → SHEETS_READ - Ler resultado da fórmula