Traduzido com IA a partir da versão em inglês de 28 de outubro de 2026. Ler o original
Gestão de inventário no Google Sheets
Como gerir o inventário no Google Sheets com um registo de movimentos, fórmulas que funcionam, alertas de stock baixo, proteção e histórico, e os limites a prever.
Última atualização: 28 de outubro de 2026
Pode gerir um inventário fiável no Google Sheets se nunca escrever por cima de uma quantidade de stock. Registe cada entrada, saída, ajuste e transferência como uma nova linha num registo de movimentos, e deixe que as fórmulas calculem o que está disponível. Essa única decisão de conceção dá-lhe stock por localização, alertas de stock baixo e um histórico que consegue ler, tudo com funções incorporadas.
Este guia percorre a estrutura da folha, as fórmulas, a validação de dados, a proteção, o histórico e os limites do Google Sheets que importam. Termina com uma análise honesta de quando o Google Sheets, por si só, deixa de ser suficiente.
Estruturar a folha de cálculo
Utilize uma folha de cálculo com três separadores. Cada separador tem uma função.
| Separador | Cada linha é | Edita-o quando |
|---|---|---|
Items | Um produto ou uma peça | Adiciona um artigo ou altera os respetivos detalhes |
Locations | Um armazém, uma sala, uma prateleira ou uma carrinha | Adiciona ou muda o nome de um local |
Movements | Uma alteração de stock | Algo entra, sai ou muda de sítio |
Os nomes dos separadores e os valores em formato de código mantêm-se em inglês, porque as fórmulas deste guia fazem referência a eles.
Items
| Coluna | Cabeçalho | Exemplo | Notas |
|---|---|---|---|
| A | SKU | BOLT-M8-40 | Único, nunca reutilizado. Formate a coluna como texto simples |
| B | Nome | Parafuso sextavado M8 × 40 mm | |
| C | Unidade | caixa | A unidade que todos os movimentos utilizam |
| D | Ponto de encomenda | 20 | Quando o stock disponível chega a este valor, encomende |
| E | Disponível | (fórmula) | Nunca é escrito à mão |
| F | Estado | (fórmula) | Reorder ou OK |
Locations
| Coluna | Cabeçalho | Exemplo |
|---|---|---|
| A | Localização | WH1 |
| B | Nome | Armazém principal |
Movements: o registo de movimentos
| Coluna | Cabeçalho | Exemplo | Notas |
|---|---|---|---|
| A | Data | 2026-10-28 | Um valor de data real, não texto |
| B | SKU | BOLT-M8-40 | Menu pendente a partir de Items |
| C | Localização | WH1 | Menu pendente a partir de Locations |
| D | Quantidade | -5 | Um valor positivo acrescenta stock e um negativo retira-o |
| E | Tipo | Issue | Receive (entrada), Issue (saída), Adjust (ajuste) ou Transfer (transferência) |
| F | Referência | PO-1042 | Nota de encomenda, trabalho ou folha de contagem |
| G | Registado por | Sam | Quem o registou |
| H | Nota | Danificado no transporte | Porquê, quando não for óbvio |
Uma transferência são duas linhas: -5 na localização de origem e +5 na de destino, ambas com o tipo Transfer e a mesma referência. Uma contagem de stock que encontra menos 3 unidades do que o esperado é uma linha Adjust com -3.
Porque é que um registo só de acrescento é melhor do que uma coluna de quantidade
A folha de inventário mais comum tem uma única coluna «Quantidade» que as pessoas vão substituindo. Funciona até algo correr mal e, nessa altura, não consegue dizer o que aconteceu.
- Um número substituído não tem história. Se 40 passa a 25, a folha não diz se 15 foram vendidos, perdidos ou mal contados. Uma linha do registo diz
-15,Issue,JOB-311, com uma data e um nome. - Duas pessoas não podem editar o mesmo número em segurança. Se duas pessoas retirarem 5 caixas cada uma e ambas escreverem 35 por cima de 40, perde-se um movimento. Duas linhas acrescentadas de
-5somam corretamente. - Os erros corrigem-se acrescentando, não apagando. Uma linha errada é corrigida com uma linha oposta, por isso o erro e a correção ficam ambos visíveis.
- O stock em qualquer data está à distância de uma fórmula. Some os movimentos até essa data.
- O stock por localização vem incluído. As mesmas linhas dão totais por artigo, por localização ou por ambos.
A regra para todos os que usam a folha é simples: acrescentar linhas a Movements e nunca editar nem eliminar as antigas.
Fórmulas para o stock disponível
Todas as fórmulas abaixo pressupõem a estrutura de separadores e colunas acima, com os cabeçalhos na linha 1.
Stock disponível por artigo
Em Items!E2 e, depois, preencha para baixo:
=SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2)
SUMIFS soma todas as quantidades (coluna D) do registo cujo SKU corresponde ao artigo dessa linha.
Para preencher a coluna inteira com uma única fórmula, coloque isto em Items!E2 e deixe vazias as células abaixo:
=ARRAYFORMULA(IF(A2:A="", "", SUMIF(Movements!B:B, A2:A, Movements!D:D)))
Stock disponível por artigo e localização
Para um artigo numa localização, por exemplo a localização escrita na célula H1 de Items:
=SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2, Movements!$C:$C, $H$1)
Para uma tabela de stock completa num separador próprio, utilize QUERY. Esta fórmula lista todos os pares de artigo e localização que têm movimentos:
=QUERY(Movements!A1:H, "select B, C, sum(D) where B is not null group by B, C label sum(D) 'On hand'", 1)
Esta transforma as localizações em colunas, com uma linha por artigo:
=QUERY(Movements!A1:H, "select B, sum(D) where B is not null group by B pivot C", 1)
Stock numa data passada
Para ver o que estava disponível no fim de um determinado dia, por exemplo a data em Items!H2:
=SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2, Movements!$A:$A, "<="&$H$2)
Detetar stock negativo
Uma localização não pode ter menos de zero. Esta fórmula lista todos os pares de artigo e localização abaixo de zero, o que normalmente significa uma entrada em falta ou um erro de digitação:
=QUERY(QUERY(Movements!A1:H, "select B, C, sum(D) where B is not null group by B, C", 1), "select * where Col3 < 0", 1)
O QUERY interior calcula os totais por localização; o exterior mantém apenas as linhas negativas. Um resultado vazio significa que nenhuma localização está abaixo de zero.
Alertas de stock baixo e pontos de encomenda
Uma coluna de estado
Em Items!F2 e, depois, preencha para baixo:
=IF(D2="", "", IF(E2<=D2, "Reorder", "OK"))
O estado fica vazio quando não há ponto de encomenda definido, para que os artigos novos não mostrem um falso alarme.
Realçar as linhas que precisam de nova encomenda
- Selecione
A2:Fno separadorItems. - Clique em Formatar → Formatação condicional.
- Em Formatar células se, escolha A fórmula personalizada é.
- Introduza
=AND($D2<>"", $E2<=$D2). - Escolha uma cor de preenchimento e clique em Concluído.
Os cifrões mantêm as colunas fixas enquanto a linha muda, por isso a linha inteira muda de cor. O Google indica que as fórmulas de formatação condicional só podem fazer referência à mesma página, a menos que use INDIRECT. É por isso que o stock disponível e o ponto de encomenda ficam lado a lado no separador Items.
Pode usar a mesma funcionalidade para assinalar as linhas do registo cujo sinal não corresponde ao tipo. Selecione A2:H em Movements e utilize:
=OR(AND($E2="Receive", $D2<0), AND($E2="Issue", $D2>0))
Noções básicas do ponto de encomenda
Um ponto de encomenda responde a uma pergunta: até onde pode o stock descer antes de ter de encomendar, para que a nova entrega chegue antes de o stock esgotar? A fórmula básica é:
Ponto de encomenda = consumo diário médio × prazo de entrega em dias + stock de segurança
- O consumo diário médio vem do seu registo de movimentos.
- O prazo de entrega é o número de dias entre a encomenda e ter o stock na prateleira.
- O stock de segurança é a margem para entregas lentas ou semanas de muito movimento.
Acrescente três colunas auxiliares a Items: G «Consumo diário médio (30 dias)», H «Prazo de entrega (dias)» e I «Stock de segurança». Em G2:
=-SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2, Movements!$E:$E, "Issue", Movements!$A:$A, ">="&(TODAY()-30))/30
O sinal de menos transforma as quantidades negativas de Issue num ritmo de consumo positivo. Depois, defina o ponto de encomenda em D2:
=ROUNDUP(G2*H2 + I2, 0)
Por exemplo, um artigo consumido a 4 caixas por dia, com um prazo de entrega de 5 dias e 10 caixas de stock de segurança, tem um ponto de encomenda de 4 × 5 + 10 = 30. Reveja os prazos de entrega e o stock de segurança quando os fornecedores ou as épocas mudarem; a fórmula só é tão boa quanto esses dois dados.
Validação de dados e menus pendentes
Os menus pendentes evitam os erros de digitação que estragam o SUMIFS e o QUERY: um SKU com um espaço no fim ou uma localização escrita de duas formas nunca corresponde.
Adicionar um menu pendente a partir de um intervalo
- Em
Movements, selecioneB2:B. - Clique em Dados → Validação de dados → Adicionar regra.
- Em Critérios, escolha Menu pendente (de um intervalo) e introduza
Items!A2:A. - Clique em Concluído.
Repita para C2:C com Locations!A2:A. Para E2:E, escolha Menu pendente e adicione os itens Receive, Issue, Adjust e Transfer. O Google também disponibiliza Inserir → Menu pendente e a opção Pendente no menu do botão direito; todas abrem o mesmo painel de regras de validação de dados.
Rejeitar ou avisar
Por predefinição, o Google Sheets rejeita uma entrada que não corresponde à lista. Se preferir permiti-la com um aviso, abra Opções avançadas e, em Se os dados forem inválidos:, selecione Mostrar um aviso. Num registo de movimentos de inventário, mantenha a rejeição ativa: um movimento com um SKU desconhecido é quase sempre um erro.
Acrescente também uma regra de validação em D2:D que só aceite números, e em A2:A que só aceite datas. Uma quantidade escrita como texto é ignorada pelo SUMIFS, por isso o stock fica errado sem que ninguém dê por isso.
Proteger intervalos e partilhar com cuidado
As permissões do Google Sheets têm dois níveis, e ambos importam.
- A partilha decide quem pode abrir o ficheiro e se é Leitor, Comentador ou Editor. É definida com Partilhar e aplica-se ao ficheiro inteiro.
- As páginas e os intervalos protegidos restringem o que os editores podem alterar dentro do ficheiro.
Proteger o que ninguém deve escrever
- Clique em Dados → Proteger páginas e intervalos.
- Clique em Adicionar uma página ou um intervalo.
- Escolha Intervalo e selecione
Items!E2:F(as colunas de fórmulas). - Clique em Definir autorizações.
- Selecione Restringir quem pode editar este intervalo, escolha Apenas o utilizador e clique em Concluído.
Proteja da mesma forma o separador Locations inteiro, se a lista mudar raramente. Em Movements, as pessoas têm de conseguir acrescentar linhas, por isso uma proteção estrita não serve. Utilize antes Mostrar um aviso ao editar este intervalo nas linhas existentes; pede às pessoas que confirmem antes de alterarem o histórico.
Saiba o que a proteção não faz. O Google afirma que a proteção não deve ser usada como medida de segurança e que «as pessoas podem imprimir, copiar, colar, importar e exportar cópias de uma folha de cálculo protegida». O proprietário pode sempre editar um intervalo protegido, e não é possível proteger dados com uma palavra-passe. Os passos detalhados estão em Proteger uma página ou um intervalo.
Partilhar com a função mais restrita
- Atribua Leitor a quem só precisa de consultar o stock.
- Atribua Editor apenas a quem regista movimentos.
- As definições de partilha do Google permitem impedir que os editores partilhem o ficheiro, conforme descrito em Partilhar ficheiros do Google Drive.
Histórico de versões e histórico de edições das células
O Google Sheets guarda dois tipos de histórico: as versões do ficheiro inteiro e o histórico de edições de cada célula. Não pode ver o histórico de versões sem autorização para editar o ficheiro.
Histórico de versões
Para ver versões anteriores, clique em Última edição, no canto superior direito da folha de cálculo. Escolha uma versão no painel do lado direito para ver quem alterou o quê. Por predefinição, o Google Sheets oculta as linhas não modificadas; clique em Mostrar linhas não modificadas para ver tudo.
Pode restaurar uma versão ou fazer uma cópia dela. Restaurar uma versão de uma folha de cálculo limpa o histórico de edições célula a célula das alterações feitas antes do restauro, por isso, num ficheiro de inventário com muito movimento, fazer uma cópia é normalmente a opção mais segura. Consulte Restaurar uma versão anterior.
Pode atribuir um nome a até 15 versões por folha de cálculo, e as versões com nome não são unidas. Atribua um nome a uma versão depois de cada contagem de stock, por exemplo «Contagem 2026-10-31», para poder sempre regressar a ela.
Histórico de edições das células
Clique com o botão direito do rato numa célula e escolha Mostrar histórico de edições para ver quem alterou essa célula. O Google indica alterações que podem não aparecer aí:
- linhas e colunas adicionadas ou eliminadas;
- alterações ao formato da célula;
- alterações feitas antes de uma versão anterior ter sido restaurada;
- alterações feitas por fórmulas.
Este último ponto é importante numa folha baseada em fórmulas: as células Disponível mudam através de fórmulas, por isso o respetivo histórico de edições não explica um novo número. As linhas do registo de movimentos explicam. Há mais detalhes em Saber quem alterou uma célula.
Notificações de edição
Clique em Ferramentas → Definições de notificação → Editar notificações para receber um e-mail quando outras pessoas alterarem a folha de cálculo, de imediato ou num resumo diário. O Google indica que só pode configurar notificações para si.
Limites do Google Sheets a prever
Estes são os limites que o Google documenta, consultados a 28 de outubro de 2026. A lista completa, com o que fazer perto de cada um, está em Limites do Google Sheets para inventário.
| Limite | O que o Google documenta |
|---|---|
| Células por folha de cálculo | Até 20 milhões de células ou 100 MB para folhas de cálculo criadas no Google Sheets ou convertidas para este formato (limites de ficheiros do Drive). O Google aumentou-o de 10 milhões em setembro de 2026 (Workspace Updates) |
| Pessoas a editar ao mesmo tempo | Só é possível editar ativamente um ficheiro Google num máximo de 100 separadores ou dispositivos abertos em simultâneo (limites de partilha) |
| Partilha | Até 600 endereços de e-mail individuais por ficheiro (limites de partilha) |
| Versões com nome | Até 15 por folha de cálculo (histórico de versões) |
| IMPORTRANGE | Limitado a 10 MB de dados recebidos por pedido; verifica se há atualizações a cada hora enquanto o documento está aberto (IMPORTRANGE) |
Um registo de movimentos cresce uma linha por movimento. Com 8 colunas, 1000 movimentos por mês acrescentam 8000 células por mês, cerca de 96 000 por ano. A maioria das equipas pequenas nunca atinge o limite de células, mas os ficheiros grandes ficam lentos muito antes disso. Arquive os anos fechados num ficheiro separado e transporte o saldo final como uma linha Adjust por artigo e localização.
Quando o Google Sheets, por si só, deixa de ser suficiente
A estrutura acima funciona bem para algumas pessoas cuidadosas. À medida que a equipa cresce, estas lacunas começam a custar tempo ou dinheiro.
- Edições simultâneas. O Google Sheets mostra as edições em tempo real, mas nada impede duas pessoas de alterarem a mesma linha, ou alguém de ordenar o registo enquanto outra pessoa escreve. Nada verifica uma alteração antes de ela ser aplicada.
- Sem aprovações. Qualquer editor pode registar um ajuste de 500 unidades ou alterar um ponto de encomenda. Não existe nenhum passo em que uma segunda pessoa o reveja primeiro.
- Um histórico difícil de auditar. O histórico de versões é agrupado e as revisões podem ser unidas ocasionalmente. O histórico de edições das células ignora resultados de fórmulas, linhas inseridas e eliminadas e alterações de formato, e um restauro limpa-o. O proprietário de um ficheiro numa Conta Google pessoal pode eliminar permanentemente as versões sem nome. Nada prova que o histórico que vê está completo.
- Substituições acidentais. Uma colagem no intervalo errado ou um «preencher para baixo» longe demais altera centenas de linhas do registo de uma só vez. O histórico de versões pode recuperá-las, se alguém der por isso.
- As permissões são ao nível do ficheiro. Um editor pode editar todos os separadores e todas as localizações, a menos que crie proteções à mão, e a proteção não é uma medida de segurança, segundo a descrição do próprio Google. Não é possível dizer «esta pessoa só regista movimentos do armazém norte».
- As regras estão na cabeça das pessoas. «Nunca editar linhas antigas» e «acrescentar sempre uma referência» são convenções. A folha não as impõe.
Se isto lhe parece familiar, tem três opções: aceitar o risco, mudar para um sistema de inventário separado ou manter a folha e acrescentar-lhe controlo.
Como o LightInventory acrescenta controlo à mesma folha
O LightInventory é uma aplicação de inventário construída sobre uma folha do Google Sheets que lhe pertence. Está em desenvolvimento e ainda não está disponível ao público em geral. Usa a mesma estrutura de registo de movimentos deste guia, e a aplicação impõe as regras acima em vez de as deixar entregues às convenções.
- Os seus dados ficam na sua folha. Artigos, localizações, movimentos e o registo de alterações são separadores da sua própria folha de cálculo. Se deixar de utilizar o LightInventory, fica com o ficheiro.
- Todas as alterações são registadas. Cada alteração é escrita num separador
Logcom quem a fez, quando, o valor antes e o valor depois. Os erros são corrigidos com uma entrada compensatória, nunca apagando o histórico. - Histórico à prova de adulteração. Uma cadeia de hashes com chave do registo, sem os seus valores, é guardada fora do seu ficheiro e ancorada externamente, por isso uma linha do registo editada ou eliminada às escondidas falha a verificação. Consulte o registo de auditoria.
- Aprovações. Escolhe que alterações precisam de aprovação, por exemplo alterações de preço. O revisor não pode ser a pessoa que pediu a alteração.
- Funções. Proprietário, Administrador, Aprovador, Editor e Leitor, com a opção de limitar Editores e Leitores a determinadas localizações. Os membros da equipa trabalham na aplicação e não são adicionados ao ficheiro, a menos que o proprietário lhes conceda edição direta.
- Deteção de edições diretas. Se alguém editar a folha diretamente, o LightInventory deteta a alteração e trata-a de acordo com a sua política: bloqueá-la até um proprietário a adotar ou restaurar, registá-la automaticamente ou enviá-la para aprovação.
Há um plano Free para 1 utilizador e 1 folha de cálculo. O plano Team custa 2,99 € por utilizador por mês com faturação mensal, ou 2,49 € com faturação anual, impostos não incluídos. Os detalhes estão em preços, e a forma como os seus dados e o acesso são tratados está em segurança.
Junte-se à lista de espera
Seja dos primeiros a experimentar o LightInventory. Enviaremos um e-mail quando o acesso antecipado abrir.