Ícone do LinkedIn Ícone do RSS Ícone do Lnk.Bio

02 Dez 2024 | 6 minutos • Ferramentas

Como criar um documento no Coda - Fórmulas

Como solucionar alguns problemas dentro do documento

Ingrid Machado

Ingrid Machado

Engenheira de computação, especialista em engenharia de software. Autora deste querido blog.

Image de capa do post Como criar um documento no Coda - Fórmulas

Depois de falar sobre os conceitos da criação de documento no Coda e de mostrar um exemplo, decidi explicar algumas das fórmulas que usei no documento que resultou nessa série de posts. Eu pretendia explicar sobre dentro do post anterior, mas ele estava muito grande e acho que ficaria complicado para o entendimento deixar tudo junto.

Selecionei as principais fórmulas do documento de aprendizado contínuo para explicar como elas funcionam, começando das mais simples. Também incluí, além do código da fórmula, a imagem que é mostrada dentro do Coda, para ficar mais claro.

Para entender melhor essa explicação, sugiro que você leia primeiro o guia do documento que estou usando como exemplo.

Datas

Cálculo de data de conclusão

If(thisRow.[Data de início].IsNotBlank(),thisRow.[Data de início]+thisRow.[Estimativa de conclusão (em dias)], "")

O documento solicita uma estimativa em dias para a data de conclusão do plano de estudos. Com essa data preenchida, e o plano de estudos iniciado, a fórmula calcula a data de conclusão através de uma função If(). Essa função é um SE e tem o seguinte formato:

If(condition, ifTrue, ifFalse)

O que a fórmula avalia é se a data de início não está vazia, através da função IsNotBlank(). Se não estiver vazia, então a data de início é somada à data de conclusão. Senão, o campo é deixado em branco.

Se a data de ínicio é 26/11/2024 e a estimativa de conclusão é de 100 dias, o resultado será a data 06/03/2025, por exemplo.

Cálculo de dias restantes

thisRow.[Data de conclusão]-Today()

Para calcular quantos dias ainda restam para a conclusão do plano de estudos, o valor da data de conclusão, calculado através da fórmula anterior, é usado.

A conta é bem direta, o documento calcula a diferença entre a data de conclusão e o dia atual. A função Today() retorna o dia atual de forma dinâmica, o que significa que esse cálculo está sempre atualizado.

Se a data de conclusão é 06/03/2025 e a data atual é 15/12/2024, o resultado dos dias restantes será de 81 dias.

Botões

Os dois fluxos são botões que mudam de acordo com o status dos planos de estudo e dos itens. Dessa forma, é possível usar apenas um botão, mudando a função e o que é exibido de acordo com o status, através de uma fórmula.

Quando adicionamos um botão no Coda, podemos adicionar fórmulas nos campos “On click” e “Label” para tornar o comportamento e o texto do botão dinâmicos.

Fluxo de planos de estudos

On click:

SwitchIf(  
    thisRow.Status = [Não iniciado],  
    ModifyRows(thisRow, thisRow.Status, [Em andamento], 
        thisRow.[Data de início], Today()),  
    thisRow.Status = [Em andamento],  
    ModifyRows(thisRow, thisRow.Status, [Concluído]),  
    thisRow.Status = Suspenso,  
    ModifyRows(thisRow, thisRow.Status, [Não iniciado])  
)

A função SwitchIf() executa o que estiver dentro da primeira condição verdadeira. E a função ModifyRows() permite que se altere valores de uma ou mais linhas em uma tabela.

Analisando a fórmula completa, temos o seguinte comportamento no clique do botão:

Label:

SwitchIf(
    thisRow.Status=[Não iniciado],"Iniciar plano", 
    thisRow.Status=[Em andamento], "Concluir plano", 
    thisRow.Status=Suspenso, "Retomar plano"
)

O que está sendo exibido no botão também muda de acordo com o status e acredito que essas transições farão mais sentido nessa explicação.

O texto do botão deve ser exibido conforme as seguintes regras:

Se analisarmos as duas regras (On click e Label) juntas, é mais fácil entender: se o status é igual a “Não iniciado“, exibir “Iniciar plano” e, ao clicar, então a linha em que o botão foi clicado deve ter a coluna “Status” alterada para o valor “Em andamento” e a coluna “Data de início” alterada para a data de hoje através da função Today().

Fluxo de itens

On click:

SwitchIf(  
    thisRow.Status = [Não iniciado],  
    RunActions(  
        ModifyRows(thisRow, thisRow.Status, [Em andamento]),  
        ModifyRows(  
            Filter(  
                [Plano de estudos],  
                And(  
                    Status = [Não iniciado],  
                    Itens.Contains(thisRow)  
                )  
            ),  
            [Plano de estudos].Status,  
            [Em andamento],  
            [Plano de estudos].[Data de início],  
            Today()  
        )  
    ),  
    thisRow.Status = [Em andamento],  
    RunActions(  
        ModifyRows(thisRow, thisRow.Status, [Concluído]),  
        ModifyRows(  
            Filter(  
                [Plano de estudos],  
                And(  
                    Status = [Em andamento],  
                    Itens.Contains(thisRow),  
                    Itens  
                    .All(  
                        Or(  
                            CurrentValue.Status = [Concluído],  
                            CurrentValue.Status = Suspenso  
                        )  
                    )  
                )  
            ),  
            [Plano de estudos].Status,  
            [Concluído]  
        )  
    ),  
    thisRow.Status = Suspenso,  
    ModifyRows(thisRow, thisRow.Status, [Não iniciado])  
)

Para os itens, a fórmula dentro do “On click” é bem parecida, mas se torna mais complexa por duas regras adicionais:

Para conseguir executar essas regras, usei as seguintes funções:

Quando o status do item é “Não iniciado” e o botão é clicado, a fórmula vai passar o item para o status “Em andamento” e avaliar se o plano de estudos que contém esse item também está no status “Não iniciado”. Um filtro é feito para essa segunda conferência e o plano de estudos que atende esse critério vai ter o status passado para “Em andamento” e a data de início vai ser preenchida com a data atual.

Quando o status do item é “Em andamento” e o botão é clicado, a fórmula vai passar o item para o status “Concluído” e avaliar se o plano de estudos que contém esse item possui todos os outros itens no status “Concluído” ou “Suspenso”. Se essa condição for verdadeira, o plano de estudos também terá o seu status alterado para “Concluído”.

A fórmula em “Label” é igual à usada no plano de estudos, com a diferença de que os textos se referem a um item e não a um plano.


Espero que ter explicado essas fórmulas te ajude a criar as suas próprias fórmulas no Coda. Caso queira ler mais a respeito, tem esse post no blog explicando sobre as fórmulas do Coda e esse link é o guia oficial com todas as fórmulas.

Até a próxima!

O link do post foi copiado com sucesso!

Mais conteúdos de Ingrid Machado

Imagem de capa do post Obsidian Web Clipper

24 Nov 2025 • Ferramentas

Obsidian Web Clipper

No Clube do Livro para Introvertidos, estamos lendo o livro “Criando um segundo cérebro”. E uma das sugestões do autor é salvar trechos importantes de páginas que estamos lendo online. Eu gostei d...

2 minutos

Imagem de capa do post Transferindo documentos do Coda para o Obsidian - Parte 1

23 Jun 2025 • Ferramentas

Transferindo documentos do Coda para o Obsidian - Parte 1

Estou numa fase de hiper foco na costura, mas decidi diversificar um pouco os meus interesses do momento depois de ler um changelog do Obsidian. Recentemente, foi lançada uma funcionalidade chamad...

8 minutos

Imagem de capa do post Threadloop

12 Mai 2025 • Ferramentas

Threadloop

Em qualquer projeto que inicio, eu gosto de ter alguma forma de organizar o que vou fazer. Na costura não está sendo diferente. Eu já estou participando de algumas comunidades, mas decidi procurar...

3 minutos

linkedin icon
LINKEDIN
Twitter icon
TWITTER
RSS icon
RSS
Lnk.Bio icon
LNK.BIO

Ingrid Machado © 2019 - 2025

• Ingrid Machado © 2019 - 2025

• Layout por Victoria Facundes • Desenvolvido por Cristhian Rodrigues

VOLTAR AO TOPO

voltar para o topo