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

03 Jun 2022 | 7 minutos • Ferramentas

Coda - Fórmulas

Exibindo dados de forma dinâmica

Ingrid Machado

Ingrid Machado

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

Image de capa do post Coda - Fórmulas
Foto de Mike Hindle, via Unsplash

Este texto faz parte da série de posts sobre o Coda.

Depois de falar sobre como formatar as páginas, incluir tabelas e criar visões, chegou a hora de deixar o documento um pouco mais dinâmico com as fórmulas.

Se você já está familiarizado com as fórmulas do Excel, provavelmente não vai ter muita dificuldade para entender as do Coda. Elas levam os documentos para outro nível e, apesar de desacelerar a construção inicial, elas apoiam muito no acompanhamento e manipulação dos dados.

Estrutura das fórmulas

Dentro de uma fórmula, podemos usar tabelas, colunas, linhas ou referências de outros elementos do documento. Para fazer uso desses objetos, as fórmulas utilizam nomes como referências.

No post sobre visões, nós selecionamos a tabela “Lista de clientes” em um seletor no momento de criar uma tabela. E é esse mesmo nome que será usado para fazer referências à essa tabela para escrever as fórmulas. Por isso, é bem importante nomear os objetos com nomes que façam sentido.

Para montar uma fórmula, os elementos são encadeados. O encadeamento é feito por pontos, seguindo a seguinte estrutura geral:

[Tabela].[Parte da tabela].[Ação na tabela]

Usando de exemplo a tabela “Lista de clientes” do post anterior, podemos escrever a seguinte fórmula:

[Lista de clientes].Filter(plan = "Premium Plan").Count()

Ela consulta a tabela “Lista de clientes”, filtra as linhas com o valor da coluna “plan” igual a “Premium Plan” e conta quantas linhas esse filtro retorna.

Para conseguir reproduzir esse exemplo no seu documento, inicie digitando o =. Ele é o comando que abre o assistente de fórmulas e torna bem mais fácil buscar as referências e ações disponíveis.

Print do assistente de fórmulas

Com ele, é possível escrever fórmulas apenas digitando o início dos nomes e preencher o restante usando o Tab. Abaixo da fórmula, o assistente exibe o resultado do que está sendo escrito. E, acima da fórmula, onde está escrito “Add Name”, você pode dar um nome para ela e usar como referência posteriormente.

Print do assistente de fórmulas com uma fórmula renomeada

Na imagem de exemplo, a primeira fórmula foi nomeada como “Número de clientes premium”. Depois, esse mesmo nome foi usado como referência para construir uma segunda fórmula, que usa o resultado em um teste.

Manipulando tabelas

Além de acessar as tabelas com fórmulas, podemos acessar ou até mesmo criar colunas com fórmulas.

Para acessar as colunas, basta seguir como no exemplo anterior, mas acessando a coluna da tabela com o operador . para retornar a lista dos dados:

[Lista de clientes].email

Print do assistente de fórmulas com o operador ponto sendo usado para mostrar o valor da coluna "email" da tabela "Lista de clientes"

Com essa lista, é possível realizar operações para selecionar o primeiro e o último item, contar o número de itens, somar os valores, ordenar e outras operações de listas.

Para usar fórmulas em colunas, basta criar uma coluna nova e selecionar o Column type “Formula”:

Print da tabela "Lista de clientes" com uma nova coluna do tipo fórmula

Assim que a coluna é criada, é aberto o mesmo assistente de fórmulas que é exibido no documento:

Print da tabela "Lista de clientes" com o assistente de fórmulas sendo exibido

Escrevendo uma fórmula em uma coluna, ela é aplicada para todas as linhas. Na tabela “Lista de clientes”, temos duas colunas com o primeiro nome e o sobrenome de cada cliente. Normalmente, esse dado seria consultado como nome completo e, para ajustar essa visualização, fiz no exemplo uma fórmula com a função Concatenate, que combina textos separados em uma única String:

Concatenate(thisRow.first_name, " ",thisRow.last_name)

Print da tabela "Lista de clientes" com uma coluna nova usando o valor de duas colunas existentes concatenados

Fórmula sendo escrita na coluna

Print da tabela "Lista de clientes" com a coluna nova preenchida e renomeada como "Full name"

Fórmula aplicada em todas as linhas da coluna

Filter

Como já comentei nos exemplos anteriores, podemos usar filtros para retornar partes de tabelas. O funcionamento é bem similar com os filtros via menu, que foram exemplificados no post de visões, mas a diferença é que manipulamos a fórmula diretamente.

thisRow

Para acessar uma linha da tabela, temos algumas opções. A primeira é através do operador @, que acompanhado do valor de alguma linha da tabela, retorna a linha como um objeto, identificado pelo ID. No exemplo, ao digitar @Axel dentro de uma página são exibidas as linhas com esse valor na tabela “Lista de clientes” no menu e, ao escolher a linha, é exibido @1, pois esse é o valor da coluna chave que está sendo utilizada na tabela.

Print do objeto da tabela referente à linha com o ID 1

A outra opção é acessar essa mesma linha com a referência thisRow dentro de uma tabela.

Print assistente de fórmulas mostrando o valor da linha com o ID 1

A principal diferença do Coda para o Excel, por exemplo, é que ao invés de termos a referência a uma célula em específico, temos uma referência a uma linha da tabela. Quando temos a referência da linha conseguimos acessar o valor em cada uma das colunas e montar documentos dinâmicos de forma mais simples.

Lookup

No Coda existem dois tipos de lookup: o de coluna e o de fórmula.

No primeiro tipo, é possível criar uma coluna que faz referência aos valores de uma outra tabela, seja ela existente ou não. Por exemplo, se criarmos uma coluna na tabela “Lista de clientes” e selecionarmos o tipo Lookup, será exibida uma lista de tabelas disponíveis para lookup e a opção de criar uma nova tabela.

Print da tabela "Lista de clientes" com uma nova coluna do tipo Lookup

Escolhendo a opção “Create new table”, o Coda cria uma tabela que já está referenciando a coluna da tabela “Lista de clientes”:

Print do modal com a opção de criar uma nova tabela para o lookup e a tabela criada com o nome "Produtos"

Dentro da coluna onde criamos esse lookup, podemos selecionar os valores de referência da nova tabela “Produtos”, que são as linhas da tabela exibidas com o valor da coluna chamada “Display column”. Essa opção é a melhor quando queremos selecionar os valores de uma tabela na outra.

Print da tabela "Lista de clientes" com a coluna "Produtos" exibindo o resultado do lookup

No lookup de fórmulas, ao criarmos uma coluna escolhemos o tipo fórmula e dentro dela usamos a fórmula Lookup().

A fórmula tem 3 partes:

Lookup(table, column, match value)

Vamos usar de exemplo a tabela de produtos, que renomeei para “Produtos disponíveis”. Assim, evitamos confusões entre a referência da tabela e a referência da coluna, que tinham o mesmo nome até o momento.

Print da tabela "Produtos" renomeada como "Produtos disponíveis" e com a nova coluna "Preço"

Agora a tabela “Produto disponíveis” possui um campo de preço. Caso eu queira mostrar para cada cliente o valor do produto selecionado, eu uso a seguinte fórmula:

Lookup([Produtos disponíveis],[Produtos disponíveis].Tipo, thisRow.Produtos.Tipo).Preço

Ou seja, a coluna da tabela “Lista de clientes” vai exibir o valor encontrado ao comparar a coluna “Tipo” da tabela “Produtos disponíveis” com o valor da coluna “Produtos”. Note que eu uso thisRow.Produtos.Tipo, o que significa que estou comparando valores iguais. Ao final da fórmula, eu seleciono o campo “Preço” para retorno do lookup.

Print da tabela "Lista de clientes" com uma nova coluna usando a fórmula de lookup

A documentação recomenda o uso do Table.Filter(). Fazendo com um filtro, a fórmula seria:

[Produtos disponíveis].Filter(Tipo=thisRow.Produtos.Tipo).Preço

Ou seja, na tabela “Produtos disponíveis”, filtra por linhas que tenham o valor da coluna “Tipo” igual ao da coluna “Produtos” na propriedade “Tipo” (comparando campos iguais) e, do resultado desse filtro, exibe o valor do campo “Preço”.

Esse tipo de lookup é o recomendado quando queremos listar o conteúdo de uma tabela em outra. Então é aconselhável que se desenhe primeiro o que é necessário atingir com a tabela antes de escolher o tipo de lookup.


Mesmo resumindo algumas fórmulas, esse post acabou ficando bem maior do que eu estava imaginando. Então, decidi deixar somente com esses exemplos.

Para a lista completa de fórmulas, você pode consultar a documentação.

Até a próxima!

O link do post foi copiado com sucesso!

Mais conteúdos de Ingrid Machado

Imagem de capa do post Sistema de gestão de conteúdo - Construção - Parte 2

28 Nov 2022 • Ferramentas

Sistema de gestão de conteúdo - Construção - Parte 2

Este post é a terceira parte da explicação sobre como criei o meu projeto para o Coda Doctorate. Para entender o processo por completo, recomendo que inicie a leitura pelo post com a primeira pa...

5 minutos

Imagem de capa do post Sistema de gestão de conteúdo - Construção - Parte 1

14 Nov 2022 • Ferramentas

Sistema de gestão de conteúdo - Construção - Parte 1

Este post é a segunda parte da explicação sobre como criei o meu projeto para o Coda Doctorate. Para entender o processo por completo, recomendo que leia primeiro o post com a ideação. Recapit...

4 minutos

Imagem de capa do post Sistema de gestão de conteúdo - Ideação

31 Out 2022 • Ferramentas

Sistema de gestão de conteúdo - Ideação

Depois do Coda Bootcamp, fiz a minha inscrição para o Coda Doctorate, que é a fase com conteúdo mais avançado sobre o Coda. Mas, a melhor parte, é que ele é muito focado em resolução de problemas. ...

6 minutos

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

Ingrid Machado © 2019 - 2024

• Ingrid Machado © 2019 - 2024

• Layout por Victoria Facundes • Desenvolvido por Cristhian Rodrigues

VOLTAR AO TOPO

voltar para o topo