Você está na página 1de 26

SUMÁRIO

1. Conceitos básicos da programação: 3

1.1. Código-fonte e fluxo básico: 4


2. Python: 6

3. Excel 14

4. VBA 17

5. SQL 21

Glossário 26
LÓGICAS DE PROGRAMAÇÃO

1. CONCEITOS BÁSICOS DA PROGRAMAÇÃO:

Pense no computador como uma pessoa totalmente inábil, que só segue instruções. Uma pessoa
que não pensa em nada fora da caixa. É extremamente eficiente que só faz o que é mandado. O
computador não é inteligente e não faz nada sozinho. Se você passa as orientações erradas, não
vai rodar.

O computador é uma máquina e só recebe um sinal elétrico. Precisamos achar uma maneira de
pegar essa linguagem de máquina (baseada em zero e um) e transformar de uma forma que consi-
gamos entender e passar essa informação para o computador de uma forma eficiente. Nós preci-
samos fazer uma tradução do que queremos para a língua que o computador entende.

Programar funciona como um trabalho de tradução para as línguas Python, Java e afins, que são as
únicas entendidas pelo computador. Essas linguagens possuem dois diferentes níveis:

• Baixo nível: linguagem muito próxima às instruções do hardware (Assembly) e ao código de


máquina;

• Alto nível: altamente inteligível, muito próximo da linguagem humana.

Confira as principais linguagens utilizadas, em ordem decrescente, do mais alto nível para o mais
baixo nível: Python, Javascript, Java, Ruby, C++, C, Assembly e Código de Máquina.

Por que é importante conhecer conceitos básicos de programação para trabalhar na mesa de ope-
rações?

1. Para realizar tarefas típicas, como:

• Tratar dados de fontes externas (B3, Bloomberg, CVM);

• Gerar relatórios a partir destes dados;

• Abolir CTRL+C e CTRL+V diário;


SAIBA MAIS
• Acessar sites e baixar arquivos.
CLIQUE AQUI
2. Compreender demandas com maior complexidade com squads, pares e fornecedores;

3. Se tornará tão indispensável quanto falar inglês.

3
LÓGICAS DE PROGRAMAÇÃO

1.1. Código-fonte e fluxo básico:

Integrated Development Environment (IDE): ambiente de desenvolvimento. Onde você vai escrever
seu código, integrar seu código e testar seu código. É possível escrever na hora e rodar na hora,
o que torna o processo muito didático para quem está começando a programar. Oferece alguns
recursos que também facilitam esse processo, como o autopreenchimento (que oferece uma série
de opções automáticas para você escolher como completar seu código) e a análise de erros (um
apontamento automático do trecho do código em que você cometeu um erro, facilitando a identifi-
cação do trecho que precisa ser corrigido).

Sintaxe:

Existem algumas regras de escrita para que sua programação não traga erros:

• Atribuição de variáveis;

• Edentação;

• Declaração de funções.

Tipos de dados:

Algumas linguagens são mais amplas e outras mais restritas, mas existem dados comuns a todas:
chamados tipos primitivos. Exemplos:

• Inteiro - int: 3, 20, -33, 1000

• Ponto flutuante - float: n = 3,1415928…

• Lógico - boolean: True/False

• Caractere - char: ‘a’, ‘b’, ‘x’, í’

• Cadeia de caracteres - string: ‘’MBA Broker Global’

Variáveis:

É uma posição na memória. Já que o computador tem memória limitada, é preciso que cada dado
usado tenha um espaço de memória para ele ser alocado. Cada variável ou objeto novo demanda a
alocação de um novo espaço na memória RAM.

4
LÓGICAS DE PROGRAMAÇÃO

Pontuações e símbolos:

Diferentes linguagens apresentarão diferentes pontuações. Exemplos de como identificar comen-


tários em cada linguagem:

• C++: //Um simples comentário

• Python: #Um simples comentário

• VBA: `Um simples comentário

Operador:

É o que está entre sua variável e o seu valor.

• Atribuidor: associa um valor a uma variável. Exemplo: nome_empresa = “XP”

• Aritméticos: operações matemáticas: adição (+), subtração (-), multiplicação (*) e resto da
divisão (%)

• Relacionais: comparações de valores: maior que (>), menor que (<), diferente de (!=, <> ou
!==), igual a (==)

• Lógicos: combinações e condições: AND (&, &&), OR (or, ||), NOT

Sequências:

Além da sintaxe correta, é importante que a programação tenha uma sequência lógica, assim como
nós precisamos ter uma rotina de manhã: acordar, escovar os dentes, tomar café.

Seleções:

Além de seguir uma sequência lógica, a programação pode ter pausas, com questionamentos que
definem os próximos passos, o desdobramento da próxima ação.

Loops:

Além das seleções, é importante que as perguntas que vão direcionar os próximos passos sejam
feitas repetidas vezes até que a tarefa desejada seja executada.

5
LÓGICAS DE PROGRAMAÇÃO

2. PYTHON:

Tutorial de instalação do Python:

O Anaconda é uma ferramenta completa para análise de ciência de dados. É um pouco mais pe-
sado que o Python, mas inclui esse programa e já vem pronto para usar, com todos os recursos
adicionais necessários. Para baixar o Anaconda, é só acessar este link: anaconda.com/products/
individual

Numerais Python:

O Anaconda oferece a possibilidade de uso do Python pelo Jupyter. Para programar operações
aritméticas como:

• Adição;

• Subtração;

• Multiplicação;

• Divisão;

• Módulo;

• Potência.

Strings:

Para criar uma string, é preciso usar aspas simples ou duplas. Dentro desse universo das strings,
existem dois conceitos importantes sobre os quais ainda não falamos, mas vamos abordá-los mais
a frente nesta apostila. São eles: objetos e parâmetros.

Os objetos em Python têm métodos embutidos, que funcionam dentro do próprio objeto e são fun-
ções que realizam ações ou comandos no próprio objeto. Já, os parâmetros são argumentos que
podem alterar o modo do método funcionar. Mas não se preocupe com isso por enquanto. Guarde
esses conceitos na mente, que em breve vamos retomá-los.

6
LÓGICAS DE PROGRAMAÇÃO

Outra prática importante é a formatação de strings, ou seja, as maneiras diferentes de mostrar um


objeto na tela para seu usuário. Há três principais:

1. Oldschool com o placeholder %;

2. .format() clássico do python;

3. Novo método introduzido pelo Python 3.6: f-strings.

[DICA] A terceira maneira é a mais pythonica (uma expressão muito usada nesse nosso
mundo, fique à vontade para adotar :), mas você pode se deparar também com as duas
primeiras maneiras em códigos mais antigos.

[DICA] No Júpiter, ao apertar SHIFT + Enter, você pula para a próxima linha.

Listas:

O processo de criação de listas é um recurso muito útil para o Python.

Dicionários:

Os dicionários são uma estrutura do Python que tem muitas utilidades, apesar da sua definição fugir
um pouco do entendimento mais óbvio, ao contrário do que acontece nas listas, nos números e nas
strings que vimos até agora. Mas não se preocupe! Não se trata de um conceito difícil. O dicionário
demanda apenas um pensamento um pouco mais abstrato por apresentar uma estrutura nova.

Para entender o dicionário, você deve seguir a ideia de maping, ou seja, o que se pretende mapear.
Um dicionário de idiomas, por exemplo, apresenta uma palavra em uma língua estrangeira e sua
respectiva tradução. Uma palavra se relaciona à outra. O dicionário no Python segue mais ou me-
nos essa mesma lógica de se ter coisas associadas a outras.

Fica mais fácil ao imaginar a ideia de uma chave que abre uma porta para que você tenha a possi-
bilidade de descobrir algo novo.

7
LÓGICAS DE PROGRAMAÇÃO

Tipos embutidos:

Os tipos embutidos são os tipos clássicos do Python, que podem ser aplicados em vários casos.
Alguns exemplos são INT, STR e FLOAT.

[DICA] Quando você não sabe o que uma função do Python faz, basta escrever o comando dela
e apertar SHIFT + Tab na docstring dela para acessar um descritivo completo dessa função.

Tupla:

Parece muito uma lista, mas sua principal peculiaridade é o fato de ser uma estrutura imutável. A
lista, por sua vez, pode ter seus valores modificados. A tupla é construída com parênteses, em vez
de chaves e colchetes como as demais estruturas citadas até agora.

Loops:

São iteradores, jeitos de navegar por uma sequência no Python em qualquer objeto iterável, como
strings, listas, tuplas, sets e dicionários. Os loops são muito usados em qualquer repetição de
etapa que seja feita dentro do programa.

Os loops demandam a atribuição da variável item, que é completamente arbitrária. Cada programa-
dor pode escolher o que utilizar. Uma boa prática é utilizar uma palavra curta que faça sentido com
a operação, a fim de facilitar a leitura do código no futuro. Esse iterador poderá ser referenciado e
operado dentro do loop.

Existem duas famosas estruturas de repetição dos loops: for loop e while loop. A primeira navega
por itens numa sequência em qualquer objeto iterável. Já a segunda faz uma ação enquanto ela for
verdadeira, seguindo do começo ao fim da lista.

Algumas funcionalidades adicionais podem ser usadas nos loops:

• Break: “quebra”e sai do atual loop;

• Continue: ignora o código abaixo dele e volta para o topo do loop;

• Pass: “passa”, por exemplo, não faz nada.

8
LÓGICAS DE PROGRAMAÇÃO

Condicionais:

Possibilitam informar ao computador opções e diferentes saídas para os códigos desenvolvidos no


Python, dentro de uma lista de condições. Os comandos mais comuns são: if, elif e else.

O if permite informar ao computador uma tarefa com base numa lista de condições. Na prática, fun-
ciona como o seguinte comando: “Se isso acontecer, faça aquilo”. Já o elif e else funcionam como
o seguinte comando: “Se isso acontecer, faça aquilo. Se essa outra coisa acontecer, faça aquela
outra coisa. Se nada disso acontecer, faça uma terceira coisa.”

A sintaxe do if é:

if case1:

perform action1

elif case 2:

perform action2

else:

perform action3

Operadores:

Conheça alguns operadores úteis que podem facilitar muito a sua vida na hora de programar no
Python.

Range

Um dos principais operadores úteis é a função range, que permite gerar uma lista de inteiros, o que
é muito útil para iterações. São passados três argumentos: start, stop e step size.

A função range é uma função geradora. Para a visualização em formato de lista, é preciso usar
list().

Enumerate

A função enumerate foi criada para rastrear o número de loops feitos. Dessa forma, não é necessá-
rio atualizar contadores separados para isso.

9
LÓGICAS DE PROGRAMAÇÃO

Zip

A função Zip é uma lista de tuplas, que permite a realização de unpacking. Essa estrutura é bem
comum e eficiente em Python, zipando duas listas.

In

A função in aparece também no Loop e pode ser usada também para checar se determinados itens
estão em uma lista.

Not In

A função not in é o negador do in e, portanto, é usada para checar se determinados itens não estão
em uma lista.

Min e Max

Essas funções são usadas para checar o valor máximo e o valor mínimo em uma lista. Essa função
é bastante útil quando estamos iterando uma lista não ordenada e queremos chegar no máximo
dessa lista.

Random

A biblioteca padrão do Python possui muitas funções e é chamada Random. Entre elas, duas das
principais são: shuffle (que pode, por exemplo, fazer uma mistura aleatória dos componentes de
uma lista) e randint (que devolve um número aleatório dentro de um intervalo pré-determinado).

Funções:

São o pilar da execução do código, a estrutura-base dele. A função é um pedaço do código que é
repetido automaticamente quantas vezes for necessário. Em vez de perder tempo repetindo des-
necessariamente todos os códigos linha a linha, é mais eficiente envelopar o código em funções.

Existem funções nativas, como a len e a soma, e também é possível criar funções próprias. Como a
forma mais básica de reutilização de código, as funções também podem ajudar a entender melhor
a estrutura e o design de um programa completo.

10
LÓGICAS DE PROGRAMAÇÃO

A sintaxe de criação de funções é a seguinte:

def nome_da_função(arg1,arg2):

‘’’

Aqui vem sua docstring.

É a documentação e “ajuda” da função.

‘’’

# Faz coisas aqui

# retorna um resultado

Confira algumas boas práticas para programar suas funções:

• Comece com def seguido de um espaço e o nome da função (tente usar nomes relevan-
tes e não reservados);

• Em seguida, entre parênteses, são adicionados os argumentos separados por vírgula. São
os inputs da sua função. Você irá manipulá-los e referenciá-los dentro da função;

• Assim como em outras estruturas, o conteúdo da função deve ser indentado. O espaço
em branco não é só para visualizar melhor. Ele é obrigatório;

• Em seguida é recomendado escrever uma docstring. Lembre-se: códigos são mais lidos
do que escritos;

• Depois de tudo isso, é só criar seu código de fato.

Return

Permite que uma função retorne um resultado que pode ser guardado em uma variável ou utilizado
livremente.

Print

Enquanto o return possibilita salvar o resultado de um output como uma variável, o print apenas
mostra este resultado na tela, mas sem salvá-lo para uso futuro.

11
LÓGICAS DE PROGRAMAÇÃO

Como adicionar lógica dentro de uma função?

O uso das funções pode ficar cada vez mais complexo adicionando lógica sobre elas. Algumas
possibilidades possíveis:

• Checar se existem pares em uma lista;

• Retornar todos os pares da lista;

• Retornar tuplas.

Interação entre funções

Uma função pode usar resultados de uma outra função dentro dela.

Conheça duas das principais estruturas básicas que podem ser usadas em funções:

• Args: usada quando não se sabe quantos argumentos a função vai ter;

• Kwargs: usada quando não se sabe quantos argumentos keywords sua função terá.

Pandas:

O Pandas (conhecido pelo apelido PD) é uma biblioteca do Python bastante usada para estratégias
de ciência de dados, mas também muito útil para atividades menos complexas, como a manipu-
lação de dados em formato de tabela, lembrando o uso do Excel. O Pandas é uma ferramenta que
facilita a criação de relatórios e o tramaento de dados baixados da internet.

[DICA] Tabelas inteiras são chamadas de dataframe no Pandas.

[DICA] O N/A do Excel, que aparece quando alguma fórmula aplicada resulta em erro, é
equivalente ao NaN nos dataframes do Pandas, que significa “not a number”.

12
LÓGICAS DE PROGRAMAÇÃO

Mais funções úteis:

Confira uma seleção de funções úteis que facilitam muito o dia a dia do trabalho com dataframes
no Python:

• drop_duplicates() - Remove linhas idênticas;

• dropna() - Remove linhas/colunas com valores N/A;

• fillna() - Substitui valores N/A em linhas/colunas;

• .to_excel() / .to_csv() - Exporta para Excel/CSV o arquivo tratado.

[DICA] A qualquer momento, você pode resetar o Kernel pelo menu superior do Jupyter
através da função Restart & Clear Output para limpar qualquer coisa que você tenha roda-
do antes e zerar o programa novamente, sem ter mais nenhuma variável ocupada.

Quero me aprofundar no Python. Quais os próximos passos?

Este curso tem um viés introdutório para apresentar os recursos mais básicos e essenciais para
quem quer aprender a programar no Python. Se você quer continuar estudando esse tema, seguem
algumas sugestões de próximos passos a partir daqui:

• Familiarizar-se com pandas, a extensa e rica biblioteca do Python, que consiste em uma
das mais importantes ferramentas para automação;

• Programar diariamente;

• Resolver desafios disponíveis em sites como o KAGGLE, que reúne milhares de desafios
com trilhas de conhecimento, notas e indicações das soluções ótimas para cada uma das
tarefas.

Confira também uma lista de tópicos recomendados para quem deseja se aprofundar mais:

• Programação orientada a objetos: esse é um paradigma de programação, já que parte da


implementação de programas com base em cases e não funções, como vimos até agora;

• Tratamento de erros: como escapar dos erros do Python e progra-


mar o retorno de mensagens mais amigáveis pro usuário em caso de erro;
Decoradores e geradores: ferramentas que ajudam o programa a ficar mais complexo e
fluido;

13
LÓGICAS DE PROGRAMAÇÃO

• Módulos datetime: usados para manipular dados de tempo;

• Web scraping: usado para abrir páginas e baixar conteúdo automaticamente;

• GUIs: utilizados para a criação de programas mais visuais, com recursos como botões e
janelas.

3. EXCEL

Principais fórmulas e funções:

Confira uma revisão de fórmulas e funções intermediárias e avançadas que facilitam muito o uso
do Excel:

Referência relativa e absoluta:

No Excel, a referência absoluta é representada pelo símbolo de cifrão ($) e funciona para fixar uma
coluna ou uma linha. Já a referência relativa é representada pela ausência do cifrão, permitindo a
liberdade de movimentação tanto na vertical como na horizontal.

PROCV:

É uma função de pesquisa que permite que um valor específico, exato ou aproximado, seja localiza-
do automaticamente em uma tabela.

CORRESP:

Com essa função (MATCH, no Excel em inglês), é possível descobrir a posição de um dado procu-
rado dentro de uma série de células organizadas em uma mesma linha ou mesma coluna. Confira
a fórmula padrão:

=CORRESP(valor_procurado; matriz_procurada; [tipo_correspondência])

O valor_procurado é aquele que devemos informar para que a função encontre sua posição, en-
quanto a matriz_procurada é a área onde está o valor_procurado. Já, o [tipo_correspondência]
é um argumento opcional para determinar se o Excel deve procurar o dado que deseja com base
exatamente no que foi indicado em valor_procurado ou se deve procurar um valor maior ou menor
que o indicado.

14
LÓGICAS DE PROGRAMAÇÃO

ÍNDICE CORRESP:

É possível incluir o CORRESP nos argumentos do ÍNDICE para obter resultados da função PROCV
de uma forma mais rápida. Confira a fórmula da função ÍNDICE CORRESP (INDEX MATCH, no Excel
em inglês):

=ÍNDICE(matriz; CORRESP(valor_procurado; matriz_procurada; [tipo_correspondência]);CORRESP(-


valor_procurado; matriz_procurada; [tipo_correspondência]))

Importação de CSV:

Depois de colar dados CSV no Excel, eles aparecerão separados entre vírgulas, mas concentrados
na primeira coluna. Para fazer a tabulação em várias colunas, que é o formato ideal do Excel, é ne-
cessário usar a função Texto para Colunas para adaptar o formato.

Condicionais:

Equivalem às funções if, elif e else do Python, possibilitando informar ao Excel opções e diferentes
saídas, dentro de uma lista de condições. As opções mais comuns são CONTSE, CONTES, SOMASE
e SOMASES.

Auditoria de fórmulas:

Especialmente quando as planilhas se tornam grandes e complexas, a possibilidade de acontece-


rem erros nas fórmulas utilizadas aumenta. O Excel possui uma série de funções dentro do menu
Fórmulas que facilitam a detecção de eventuais erros. Confira as principais delas:

• Rastrear precedentes: em inglês, trace precedents. Mostra visualmente quais elementos


da planilha estão entrando nessa fórmula;

• Rastrear dependentes: em inglês, trace dependents. Mostra visualmente quais fórmulas


da planilha estão dependendo dessa célula;

• Mostrar fórmulas: em inglês, show formulas. altera a visualização da planilha: todos os


valores são revertidos para suas fórmulas;

• Verificação de erros: em inglês, error checking. Abre uma janela que facilita a identifica-
ção de erros nas fórmulas usadas na planilha;

15
LÓGICAS DE PROGRAMAÇÃO

• Janela de inspeção: em inglês, watch window. Permite escolher uma célula da planilha
para ser acompanhada e você consegue observar o que está realmente mudando. Muito
útil para planilhas grandes e complexas.

Atingir metas:

No menu Dados, dentro do item Teste de Hipóteses (em inglês, what if), existe a função Atingir
meta (em inglês, go seek)

[DICA] Ao trabalhar com planilhas grandes que contenham muitas células com fórmulas
automáticas, pinte de uma cor diferente as células que você costuma modificar manual-
mente para facilitar sua localização e impedir que você faça alterações por engano em
células com fórmulas automáticas.

Solver

Esta função, que é a última que aparece na aba de Dados do Excel, oferece a possibilidade de colo-
car vários parâmetros para checar um campo que tenha fórmula.

[DICA] Para conseguir usar a função Solver, é necessário habilitá-la na aba Desenvolvedor. É
só seguir a rota Arquivo > Opções > Suplementos, apertar o botão ir e selecionar o item solver.

Tabela dinâmica:

A tabela dinâmica (em inglês, Pivot Table) é uma ferramenta de agrupamento. Para criá-la, é só
acessar o menu Inserir e selecionar a primeira opção. Note que depois que você insere a tabela di-
nâmica, uma nova aba chamada Análise aparece automaticamente, reunindo todas as ferramentas
relacionadas a esse recurso.

Na hora de criar a tabela dinâmica, confira algumas das principais variáveis customizáveis:

• Filtro: usada para filtrar os valores da lista;

• Colunas: definir quais valores serão exibidos na horizontal, que vão correr ao longo das
colunas;

16
LÓGICAS DE PROGRAMAÇÃO

• Linhas: definir os valores que se deseja ver de forma sumarizada;

• Valores: quais operações você quer utilizar, como soma, contagem ou média, por exemplo.

Macros:

As macros permitem que você grave uma sequência de comandos variados para ser repetida pos-
teriormente de forma automática pelo Excel. O menu com todas as funções relacionadas às ma-
cros está na aba Desenvolvedor.

[DICA] Para ativar o menu Desenvolvedor, é necessário ativá-lo com a rota Arquivo > Op-
ções > Personalizar Faixa de Opções e selecionar o item Desenvolvedor.

4. VBA

VBA (da sigla Visual Basic for Application) é uma linguagem clássica no mercado financeiro. É uma
ferramenta de programação que pode ser usada no Microsoft Excel (entre outros programas). Nas
mesas do mundo inteiro, existe um forte movimento para abandonar as planilhas xls. Ainda assim,
é um padrão extremamente popular. É indispensável conhecer.

Os loops e condicionais do VBA são iguais aos de Phyton, já explicados. Entenda agora as princi-
pais semelhanças e diferenças entre essa linguagem e o Python:

Python VBA
Linguagem de alto nível (bem visual) Linguagem de alto nível também
Interpretada (é o oposto da compilada, que checa er- Interpretada também (o código é testado ao
ros antes do código ser rodado) mesmo tempo que é rodado)
GPL (é de uso geral, o que permite que seja usada
DSL (é de domínio específico, o que a torna mais
para manipular diversos tipos de dados: planilha, CSV,
restrita, já que se aplica apenas a produtos da
Jason, extrações da Web, bibliotecas matemáticas,
Microsoft, como Excel, Word e Power Point)
etc)
Código aberto (ou open source, que possibilita altera- Código fechado (a maioria das suas bibliotecas
ção do código de todasas suas bibliotecas) são fechadas, impedindo a customização)
Inúmeras bibliotecas disponíveis Recursos limitados (por ser um produto restrito
(qualquer tipo de manipulação de dados de que você à Microsoft, a comunidade de desenvolvedores
precise muito provavelmente já foi feita por alguém no não é tão grande e, consequentemente, há me-
passado. Isso permite que, em vez de ter que inventar nos recursos disponíveis. Com menos códigos
a roda e criar coisas do zero, você busque um modelo já criados por outras pessoas, a probabilidade
já pronto para usar) de ter que se desenvolver algo do zero é grande)

17
LÓGICAS DE PROGRAMAÇÃO

Variáveis:

No Python, era possível usar variáveis deliberadamente e usá-las da forma de preferência, enquan-
to, no Excel, isso é mais restrito. Dessa forma, é recomendado (ainda que não obrigatório) que você
declare as suas variáveis antes de usá-las.

Para fazer isso, é necessário informar o nome da variável e, preferencialmente, também seu tipo,
que indica os valores que essa variável pode conter (número inteiro, texto, booleano, etc).

Como declarar variáveis?

Confira a sintaxe para declarar variáveis no VBA:

Dim someNumber As Integer

Dim otherNumber As Double

Dim someText As String

Confira os tipos disponíveis para serem declarados:

• Varian: tipo genérico (igual a não escrever nada);

• Bollean: true/false;

• Byte: número inteiro de 0 a 255;

• Integer: inteiro de -32.768 a 32.767;

• Long: inteiro de -2.147.483.648 e 2.147.783.647;

• Double: número entre 1,79769313486232E308 e -4.94065645841247E-324;

• Currency: quantia monetária entre -922.337.203.685.477,5808 e 922.337.203.685.477,5807;

• Date: data entre 1/Janeiro/0100 e 31/Dezembro/9999;

• String: texto até 2 bilhões de caracteres.

18
LÓGICAS DE PROGRAMAÇÃO

Escrever código

É necessário endereçar o seu comando, ao escolher a planilha, o intervalo, a célula. E também abas
e planilhas, se o interesse for atuar entre duas diferentes. Importante: diferentemente do Phyton,
em VBA só é possível alterar planilhas abertas – o programa não encontra os arquivos fechados.

É possível selecionar um intervalo (range) de duas formas: arbitrando um tamanho fixo, com come-
ço e fim, ou ao usar “.End”. O comando “.End” leva a seleção, de forma dinâmica, até a última célula
preenchida, em uma das quatro direções: cima, baixo, esquerda ou direita. Basta escolher no menu.

O comando “current region” funciona como os conhecidos control+A (em inglês) ou control+T (em por-
tuguês): seleciona todas as células preenchidas. O problema desse comando é “tropeçar” em linhas
vazias no meio da planilha – ele entende que o universo selecionado acaba ali, quando talvez o progra-
mador queira todos os dados. Para planilhas sem interrupções, no entanto, funciona muito bem.

Copiar e colar

Copiar e colar range é uma operação muito comum no Excel. Existem três jeitos:

1.Range.Copy: é o mais direto. Para dados na mesma sheet, basta dar espaço e escrever o
campo de destino em seguida

2.Atribuir o valor de uma célula a outra: é o que menos exige da capacidade de processa-
mento do computador – embora, em muitos casos, não vá fazer diferença

3.Range.Paste.Special: útil para colar não só valores, mas a formatação, a fórmula... O Paste
Special oferece, em uma aba, várias possibilidades.

Para carregar apenas o valor, basta escrever “.Value” no final do comando.

Para transferir entre planilhas, é necessário abrir um work book.

Linhas vazias dificultam o trabalho de selecionar linhas e colunas, porque o Excel entende que ali
termina a seleção. É possível orientar o programa a ignorar as linhas vazias, ao usar uma instrução
FindLastRow. Não é necessário criar do zero, basta deixar colado em um bloco de notas, para quan-
do for necessária.

19
LÓGICAS DE PROGRAMAÇÃO

Condicional e loops

No Phyton, o core faz interação sobre listas, sobre duplas. O VBA é semelhante, mas a interação é
feita sobre os ranges da planilha. Cada célula é um elemento terável.

O loop é uma forma de executar as mesmas linhas de código várias vezes – com uma variável que
muda a cada execução do loop. É útil para percorrer um intervalo de células, executando alguma
ação – como repetir, em uma coluna D, as quatro primeiras letras das palavras da coluna A.

Há dois tipos principais de loops, o For e o For Each.

No loop For, você executa uma série de comandos para um intervalo determinado de células. (Ob-
servação: no VBA, o intervalo começa em n1, inclusive, e o último número descrito para o intervalo
também está incluído).

O loop For Each não vai tratar com números inteiros, e sim com objetos, como uma range (rng).

Funções

Como no Phyton, as funções evitam a digitação repetida de códigos. Lá como aqui, a ideia é ter
uma lista de funções prontas para copiar e colar. A vantagem no Excel é poder usar uma função
personalizada diretamente na planilha, como se fosse uma função de soma, por exemplo. Para fa-
zer funções no Excel, é necessário declarar os argumentos e o output precisa ter o nome da função.
Diferentemente do Phyton, não existe return: basta igualar a função ao valor que se quer mostrar
no final.

Select case

O Select Case do VBA é mais amigável que seus equivalentes do Phyton. Com ele, você isola uma
situação e manda o sistema fazer alguma coisa.

Por exemplo:

Select Case

Case > 20

Do something

Case Is 10 to 20

Do something

20
LÓGICAS DE PROGRAMAÇÃO

Case else

Do something else

End select

Como gerar pdf ou enviar email

Os códigos usados para gerar pdf ou para enviar email são considerados “border plate” – quase
ninguém sabe de cor, apenas têm, guardados, para copiar e colar quando necessário. Em VBA, não
tem erro.

Para enviar o relatório, é possível chamar o Outlook para dentro do VBA – afinal, são todos parentes
da família Microsoft. Os comandos – para enviar planilhas inteiras, apenas uma tabela ou o recorte
de uma tabela – estão na própria biblioteca do VBA.

5. SQL

O que é SQL e quando usar?

Banco de dados são muito usados na mesa de investimentos. Para armazenar informações de
mercado, dos trades, dos clientes etc. A coleta de todos os trades da B3 em um dia, incluindo mini
contratos e mini índices, produz 40 milhões de linhas de SQL. A sintaxe de programação é um pou-
co parecida com a vista até agora, mas só um pouco.

Numa operação de bolsa de contrato futuro (********primeira imagem do ppt********), os principais


parâmetros da operação ficam listados numa planilha. Cada dado, como o cliente, se desdobra em
mais detalhes – como endereço, limite de risco e CNPJ. O banco de dados permite lidar, de forma
organizada, com essas ramificações de dados.

O banco de dados permite não só armazenar os dados, mas manipular: a fim de somar, alterar ou
excluir.

Tipos de bancos de dados

Existem bancos de dados relacionais, conhecidos como SQL (da expressão em inglês Standard
Query Language), e não-relacionais.

Bancos não-relacionais funcionam como vários dicionários. Funcionam bem para dados mais caó-
ticos, pouco ou nada padronizados.

21
LÓGICAS DE PROGRAMAÇÃO

Bancos relacionais têm caixinhas relacionadas umas às outras. (como o powerpoint da Lava Jato
sobre o Lula). Funcionam bem com dados padronizados. É deles que vamos falar.

(((Imagem ERD)))

Northwind, banco de dados educacional da Microsoft. As chaves (linhas) ligam os elementos das
tabelas de forma lógica e eficiente. Esse padrão também é usado em mesas de investimento

Um banco de dados SQL tem duas chaves:

Chave primária (PK) – colunas ou conjunto de colunas que identificam entradas exclusivas. É um
número que identifica exclusivamente um item no banco de dados. Exemplo: cereais, que corres-
ponde ao número 5.

Chave estrangeira (FK) – colunas cujos valores fazem referência a chaves primárias de outras ta-
belas. Exemplo: fornecedores de cereais, que terão em sua tabela o número 5

Os tipos de dados do padrão SQL são parecidos com os de outras linguagens, como Phyton. Alguns
bancos variam os nomes, mas a lógica é a mesma:

INT – Número inteiro. Usado para dados que serão manipulados, como quantidades

DECIMAL – Número decimal. Usado para dados que serão manipulados, como quantidades

SERIAL – Auto-incremento, como Ids. Ex: x, x+1, x+2, preenchidos automaticamente a cada entrada

VARCHAR – Strings de tamanho variável. Ex: nvarchar(40), com valores até 40

CHAR – Strings de mesmo tamanho. São usadas para dados que não serão manipulados, como
CNPJ

BOOLEAN – Verdadeiro/falso

DATE – Ano/mês/dia – Útil para registros simples de tempo, como datas de aniversário

TIME – Hora/minuto/segundo – Intervalo de tempo

TIMESTAMP – Ano/mês/hora/minuto/segundo. Útil em operações de trade, que requer registro


preciso

Consultas:

SELECT Statement é a busca mais simples. Seus comandos são:

SELECT – identifica quais colunas

22
LÓGICAS DE PROGRAMAÇÃO

FROM – identifica de qual tabela

Exemplo: SELECT *

FROM table_name

(clicar) RUN SQL

Você verá todos os elementos da tabela.

SELECT DISTINCT – identifica valores únicos

SELECT TOP – identifica as x principais (onde x é o valor atribuído a LIMIT)

Como filtrar as consultas

WHERE

SELECT * FROM Customers

WHERE Country=‘Germany’

Atenção: Campos não-numéricos devem ser escritos entre aspas, mesmo as datas

Operadores WHERE:

Operador Descrição
= Igual
> Maior que
< Menor que
>= Maior ou igual que
<= Menor ou igual que
<> (ou!=) Diferente de
BETWEEN Entre um intervalo
LIKE Busca de padrões
IN Buscar dentro de lista de valores

Para combinar diferentes filtros, valem os operadores AND, OR e NOT. ORDER BY estabelece o cri-
tério de ordenamento da resposta.

23
LÓGICAS DE PROGRAMAÇÃO

Operadores aritméticos, relacionais e lógicos

Para começar a programar, usamos agregadores:

MIN – retorna o menor valor da coluna

MAX – retorna o maior valor da coluna

Exemplo: buscar a data de nascimento do funcionário mais novo

SELECT FirstName, LastName, MIN(BirthDate)

FROM Employees

LIKE – busca de padrões

Exemplo: buscar clientes com nome terminado em “a”

SELECT column1

FROM table_name

WHERE CustomerName LIKE ‘%a’

Aliases:

Dar apelidos às tabelas torna a informação mais intuitiva ao usuário. Também mais prática ao pro-
gramador, que pode economizar tempo ao digitar o apelido, em vez do nome. O alias muda o nome
visível, sem mudar o nome no banco de dados.

Exemplo: para apelidar uma tabela

SELECT column_name AS alias_name

FROM table_name

Agrupamentos

O JOIN permite criar links entre linhas de duas ou mais tabelas, baseando-se em uma coluna em
comum. Ao juntar tabelas diferentes, é possível enxergar uma informação com uma riqueza de in-
formações (pinçadas de outras tabelas) que seria muito difícil administrar em uma única e enorme
tabela.

24
LÓGICAS DE PROGRAMAÇÃO

O JOIN usa os princípios de conjuntos, aprendidos nos primeiros anos de escola.

INNER JOIN – retorna a interseção entre tabelas. Isso é útil, por exemplo, para encontrar clientes
que já fizeram alguma compra (ao cruzar a tabela de compras e de clientes).

LEFT JOIN – retorna a tabela “esquerda” (a tabela 1) e os pares encontrados na tabela “direita” (ta-
bela 2). Os dados que não tiverem cruzamento com a tabela da direita aparecerão em branco (null).
Existe o RIGHT JOIN, com o mesmo princípio. E o FULL JOIN, também chamado FULL OUTER JOIN,
que retorna todos os valores das duas tabelas.

GROUP BY serve para agrupar dados, como no Phyton ou as “Pivot Tables” do Excel, a partir de um
número relevante. As funções mais comuns são SUM (soma), COUNT (contagem de elementos),
MIN (mínimo), MAX (máximo) e AVG (média).

Criação de tabelas

Um operador de mesa raramente vai precisar criar uma tabela. Em geral elas já estão prontas, e
fazer uma, do zero, requer um certo grau de especialização para evitar ou identificar falhas. Isso é
importante, porque o SQL não cria tabelas a partir de instruções dadas pela metade: ou tudo fun-
ciona ou ele não cria. Mas é interessante ter uma noção de como criar e excluir tabelas, além de
inserir valores.

A sintaxe para criar uma tabela é CREATE TABLE. Por exemplo:

CREATE TABLE table_name (column1 datatype, column2 datatype, column3 datatype, ...), em que
table name é o nome da tabela, column é a coluna e datatype, o tipo de dado da coluna (serial, var-
char, date etc).

A sintaxe para inserir um valor na tabela é INSERT INTO. Por exemplo:

INSERT INTO table_name (column1, column2, column3, ...)

VALUES (value1, value2, value3, ...)

25
LÓGICAS DE PROGRAMAÇÃO

GLOSSÁRIO

Acesse o glossário completo em nossa plataforma.

CLIQUE AQUI

SUGESTÕES E CORREÇÕES
Como podemos melhorar nossa apostila?

CLIQUE AQUI

26