Tópico de todas as dúvidas em excel.

Ok!
Obrigado.
Vou ter de aprender Access.
Só mais uma coisa: achas que vale a pena o tempo que vou despender a aprender access em relação ao que faço em excel, que passa pela utilização de filtros para tirar informação? É fácil "fazer perguntas" ao access? Falo de perguntas tipo:

Quantas pessoas com o nome António, tenho na base de dados?
Quantas pessoas, moram na rua Coiso e tal?
Quantas pessoas têm cabelo preto, são maiores que 1,8 m e não vivem na rua?

Caríssimo, as bases de dados relacionais são para isso mesmo. [;)]

Aliás, não só acho que vale a pena aprender Access/Base, como acho que
valerá ainda mais a pena aprenderes bases de dados relacionais e SQL.

Digamos que é a melhor ferramenta para o teu negócio.

Relational Database Design

Relational Database Design

SQLCourse - Interactive Online SQL Training for Beginners

Imagina que tens uma pessoa com 4 números de telemóveis, e 3 moradas.
Sendo que 2 são números fixos (trabalho e pessoal) e outros 2 são móveis
(trabalho e pessoal), uma morada é a residência habitual, outra é de férias,
e outra é de trabalho.

Como é que fazes isso no Excel/Calc?

Imagina que nas moradas particulares tens 4 pessoas que lá vivem, e na
morada de trabalho existem 200 pessoas que lá trabalham.

Como é que obtens isto no Excel/Calc?

Isso é "a cara" do Access/Base, sem tirar nem pôr.
 
Estou a ver.
O problema vai ser convencer os meus alunos a aprender a trabalhar com Access.
Eu oriento vários alunos de mestrado integrado em medicina Dentária que vão ter de aprender a usar isto, não tendo eles qualquer formação do género. Já para excel é um bicho de sete cabeças!!![:D]
Vou tentar fazer a transição de forma gradual!

Obrigadíssimo!apr:)

EDIT: já me esquecia... entretanto já tentei importar o excel para o access e surgiram-me quase 1000 erros de importação. pelo que vejo, são erros em que na mesma coluna, por vezes tenho um valor numérico, e outras, um valor não numérico! Como raio ultrapasso estes erros?
 
Última edição:
Estou a ver.
O problema vai ser convencer os meus alunos a aprender a trabalhar com Access.
Eu oriento vários alunos de mestrado integrado em medicina Dentária que vão ter de aprender a usar isto, não tendo eles qualquer formação do género. Já para excel é um bicho de sete cabeças!!![:D]
Vou tentar fazer a transição de forma gradual!

Obrigadíssimo!apr:)

EDIT: já me esquecia... entretanto já tentei importar o excel para o access e surgiram-me quase 1000 erros de importação. pelo que vejo, são erros em que na mesma coluna, por vezes tenho um valor numérico, e outras, um valor não numérico! Como raio ultrapasso estes erros?

No Excel/Calc coloca na primeira linha um valor em todas as células,
de acordo com o tipo de dados. Ou seja, se forem dados numéricos
coloca um número, se forem texto coloca uma letra. Assim o Access/
Base cria a tabela com o tipo de dados correcto.

Mas o ideal seria criar primeiro a tabela para onde irias importar.

Ou então tentar importar directamente do Excel/Calc, em lugar de usar
um ficheiro CSV.

Quanto aos alunos... se é um mestrado, há que aprender o que lhes
for útil para o desempenho do seu trabalho.

Uma folha de cálculo, como o nome indica, é para efectuar cálculos.
Uma base de dados, como o nome indica, é para armazenar dados
(informação).

Assim sendo, talvez seja de ensinar apenas o mais básico do Access/
Base:
- Criar uma base de dados
- Criar tabelas
- Criar queries
- Criar formulários
- Fazer a manutenção e consulta dos dados

E talvez o ideal seja usar o OpenOffice ou LibreOffice em lugar do
MS Office. É que o MS Office custa dinheiro, e o Open/LibreOffice são
gratuitos. Não me parece bem estar a obrigar os alunos (e profissionais
depois do curso) a pagar para terem acesso a essas ferramentas,
quando as há a custo zero.
 
Eu já tinha importado diretamente do Excel.
O problema é que na mesma coluna tenho valores numéricos e não numéricos.
Resolvi o problema, colocando (durante o processo de importação) no Fiels "data type" "short text".
Temo é que quando precisar dos valores não consiga fazer as querys corretas, visto essas células serem detetadas como texto e não números.

Adiante... já tenho a tabela no access, mas continuo sem conseguir fazer os filtros que apresentei no ínicio do meu problema!
O que tenho de fazer é uma query para apresentar os dados que quero, da forma que quero, numa folha de excel? Ou só consigo com uma macro que faça as tarefas que eu disse e junte a informação numa tabela?
 
Eu já tinha importado diretamente do Excel.
O problema é que na mesma coluna tenho valores numéricos e não numéricos.
Resolvi o problema, colocando (durante o processo de importação) no Fiels "data type" "short text".
Temo é que quando precisar dos valores não consiga fazer as querys corretas, visto essas células serem detetadas como texto e não números.

Adiante... já tenho a tabela no access, mas continuo sem conseguir fazer os filtros que apresentei no ínicio do meu problema!
O que tenho de fazer é uma query para apresentar os dados que quero, da forma que quero, numa folha de excel? Ou só consigo com uma macro que faça as tarefas que eu disse e junte a informação numa tabela?

Aí entra o SQL.

Quantidade de pessoas chamadas António:
Código:
SELECT COUNT(*)
FROM tabela
WHERE nome LIKE '%António%'

Onde:
tabela = nome da tabela das pessoas
nome = nome da coluna dessa tabela que tem o nome das pessoas

Lista do nome das pessoas que moram no código postal 1000:
Código:
SELECT nome
FROM tabela
WHERE cpostal = 1000

Quantidade de pessoas com mais de 1,8m:
Código:
SELECT COUNT(*)
FROM tabela
WHERE altura > 180
 
Ui... tou tramado!
Começa a entrar noutra linguagem muito diferente da que a que aprendi na escola!!:sh)

Eu ainda não estava a entrar nas perguntas que quero fazer à base de dados.
Antes tenho de conseguir fazer isto aos dados:

"a atualização deve comparar os valores da coluna 1 e 2 (nome e BI) (para ver se é a mesma pessoa).
1- Caso sejam diferentes, mantém ambas as linhas.
2- Caso sejam iguais, compara célula a célula e apresenta a junção da informação.
3- Caso sejam iguais em todas as células, elimina as linhas repetidas." - See more at: http://forum.autohoje.com/off-topic/6739-topico-de-todas-duvidas-em-excel-30.html#post1067151533
 
Última edição:
Ui... tou tramado!
Começa a entrar noutra linguagem muito diferente da que a que aprendi na escola!!:sh)

Eu ainda não estava a entrar nas perguntas que quero fazer à base de dados.
Antes tenho de conseguir fazer isto aos dados:

Temos de ir por partes.
E a primeira parte é compreender uma base de dados relacional.

A base de dados é composta por tabelas.
Cada tabela tem colunas e linhas.

As colunas indicam os valores que cada linha pode ter, sendo que
cada linha é um registo de uma entidade que pretendas tratar.

Chama-se base de dados relacional porque permite manter relações
entre tabelas (entre os registos de cada tabela).

Para manter essas relações, algumas colunas assumem significados
especiais. Tens Chaves Primárias, Chaves Estrangeiras, e outras
chaves que necessites para outros efeitos que não o relacionamento
dos dados.

As Chaves Primárias são únicas. Ou seja, não se podem repetir para
uma mesma entidade. No caso das pessoas, um bom candidato a
Chave Primária poderá ser o BI (não existem duas pessoas com o mesmo
BI). Alternativamente, caso não se pretenda usar uma das colunas
existentes para Chave Primária, poderá ser criada uma coluna especial
para o efeito, cujo valor é atribuído automaticamente, tipo número de
série (no Access é uma coluna do tipo AUTONUMBER).

De qualquer modo, qualquer que seja a coluna (ou conjunto de colunas),
pode ser "marcada" como sendo de valor único (que não aceita valores
repetidos na mesma coluna da mesma tabela), ao utilizar um índice nessa
coluna marcado como índice único.

Neste caso, se disseres que a coluna BI tem um índice único, sempre que
pretenderes adicionar um registo à tabela com um BI que já existe, ele dá
um erro e impede essa adição, significando que em lugar de uma inserção
terás de fazer uma actualização do registo existente.

Aquilo que tu queres fazer no ponto 2. nunca será possível ser feito
automaticamente, seja em Excel, Access ou qualquer outra ferramenta,
porque provavelmente nem tu próprio saberás identificar o que é válido
e o que deixou de ser válido.
Imagina que identificas duas linhas no Excel com a mesma pessoa e
com dois números de telefone diferentes. Qual dos números é válido? Ou
continuarão os dois números a ser válidos? Um substitui ou outro, ou tem
efectivamente dois números de telefone? E se um substitui o outro, qual
dos dois é que é o válido?

Por isso é que os dados têm de ser tratados no momento (impedindo
duplicações), e não posteriormente. Senão às tantas já não tens nenhuma
certeza da validade dos dados (quais são válidos, quais são para substituir,
quais são para adicionar, quais são para remover).

Se quiseres mesmo ir por este caminho (Access), e sendo para dar aulas
a alunos de mestrado, convém mesmo estudares primeiro o que são bases
de dados (relacionais neste caso), Access (ou Base), e SQL (mesmo que
faças apenas queries simples usando a ferramenta gráfica, sem escrever
os comandos manualmente como eu fiz).
 
...
Aquilo que tu queres fazer no ponto 2. nunca será possível ser feito
automaticamente, seja em Excel, Access ou qualquer outra ferramenta,
porque provavelmente nem tu próprio saberás identificar o que é válido
e o que deixou de ser válido.
Imagina que identificas duas linhas no Excel com a mesma pessoa e
com dois números de telefone diferentes. Qual dos números é válido? Ou
continuarão os dois números a ser válidos? Um substitui ou outro, ou tem
efectivamente dois números de telefone? E se um substitui o outro, qual
dos dois é que é o válido?

...

Mas isto é feito regularmente pela equipa de informática com quem temos uma parceria!
Não sei como o fazem, mas que fazem, fazem.

Vou tentar explicar melhor o que fazemos:

1-Nós, "cromo investigadores", reunimos dados em tabelas excel gigantescas!
Imagina uma lista de moléculas relacionadas com uma determinada doença e nós anotamos nesse excel, diversas informações sobre cada uma dessas moléculas. Por exemplo, o nome, a quantidade, a origem!

2-Enviamos essa informação aos nossos parceiros "cromos da bioinformática" para eles importarem para uma base de dados ainda mais enorme que armazena essa informação, a integra com outra informação vinda de outras bases de dados públicas e a apresenta ao utilizador.

3- Passados 3 meses, encontramos mais moléculas relacionadas com a doença e adicionamos ao excel. Algumas dessas molécula são novas. Outras já existiam na base de dados mas têm informação nova.
As primeiras são simplesmente adicionadas à base de dados.
As últimas, têm que ser atualizadas.
Como vez, eles têm de fazer o filtro de duplicados e atualização que eu necessito.

Eu não tenho ambição de dominar as bases de dados (os meus dias têm apenas 24 horas [s)]) porque sou o gajo que gera os dados e não o que os armazena e organiza.
No entanto, parte da minha investigação passa por interpretar esses dados e escrever acerca deles.
Esse trabalho de interpretação torna-se mais simples se eu tiver os dados crus organizados sem estar à espera que o pessoal da informática faça a atualização semestral da base de dados e tenham tempo para me fazer umas querys personalizadas à mesma.

Até ao momento, tenho-me safado sempre com recurso ao excel, mas por vezes com muitos tropeções e de forma temporalmente pouco eficiente.

Eu gosto sempre de aprender coisas novas e o meu percurso académico seguiu um caminho bastante transversal devido a esse gosto.
No entanto, para pena minha, não consigo disponibilizar o tempo necessário à aprendizagem de informática pura e dura.

É tudo uma questão de racionalizar tempo e recursos.
Se a aprendizagem me leva mais tempo do que o método que eu faço atualmente, tenho de continuar, para já, a fazer "à unha"!!

Agradeço-te imenso o tempo que disponibilizaste porque serviu para eu ter a noção do mato que tenho de desbravar para fazer as coisas como quero!
Agora, resta-me arranjar tempo!

Muito obrigado!
 
Mas isto é feito regularmente pela equipa de informática com quem temos uma parceria!
Não sei como o fazem, mas que fazem, fazem.

Vou tentar explicar melhor o que fazemos:

1-Nós, "cromo investigadores", reunimos dados em tabelas excel gigantescas!
Imagina uma lista de moléculas relacionadas com uma determinada doença e nós anotamos nesse excel, diversas informações sobre cada uma dessas moléculas. Por exemplo, o nome, a quantidade, a origem!

2-Enviamos essa informação aos nossos parceiros "cromos da bioinformática" para eles importarem para uma base de dados ainda mais enorme que armazena essa informação, a integra com outra informação vinda de outras bases de dados públicas e a apresenta ao utilizador.

3- Passados 3 meses, encontramos mais moléculas relacionadas com a doença e adicionamos ao excel. Algumas dessas molécula são novas. Outras já existiam na base de dados mas têm informação nova.
As primeiras são simplesmente adicionadas à base de dados.
As últimas, têm que ser atualizadas.
Como vez, eles têm de fazer o filtro de duplicados e atualização que eu necessito.

Eu não tenho ambição de dominar as bases de dados (os meus dias têm apenas 24 horas [s)]) porque sou o gajo que gera os dados e não o que os armazena e organiza.
No entanto, parte da minha investigação passa por interpretar esses dados e escrever acerca deles.
Esse trabalho de interpretação torna-se mais simples se eu tiver os dados crus organizados sem estar à espera que o pessoal da informática faça a atualização semestral da base de dados e tenham tempo para me fazer umas querys personalizadas à mesma.

Até ao momento, tenho-me safado sempre com recurso ao excel, mas por vezes com muitos tropeções e de forma temporalmente pouco eficiente.

Eu gosto sempre de aprender coisas novas e o meu percurso académico seguiu um caminho bastante transversal devido a esse gosto.
No entanto, para pena minha, não consigo disponibilizar o tempo necessário à aprendizagem de informática pura e dura.

É tudo uma questão de racionalizar tempo e recursos.
Se a aprendizagem me leva mais tempo do que o método que eu faço atualmente, tenho de continuar, para já, a fazer "à unha"!!

Agradeço-te imenso o tempo que disponibilizaste porque serviu para eu ter a noção do mato que tenho de desbravar para fazer as coisas como quero!
Agora, resta-me arranjar tempo!

Muito obrigado!

Txxxxxiiiiii...
Já podias ter dito à mais tempo.
[;)]

Portanto, ao contrário do que eu pensava, não se trata de ensinar uma
ferramenta genérica para uma eventual utilização genérica num percurso
profissional.

Trata-se de uma utilização bem específica com um propósito também
bem específico, para servir um grupo alargado de profissionais.

Ora bem, o que falta aí é uma aplicação feita por medida. Essa aplicação
deverá permitir a recolha de dados offline para posteriormente serem
enviados para centralização e processamento.

Calha bem.
E porque calha bem?

Em 2009 estava eu a apanhar uma fase "secante" da minha vida: não estava
a aprender nada de novo.

Em lugar de fazer como o Sherlock Holmes quando estava a apanhar uma seca
(chutava para a veia), eu decidi inscrever-me numa licenciatura online da UAb,
para ver se aprendia algo de novo e se tinha alguns desafios que dessem luta.

Acontece que essa licenciatura é precisamente de informática, e que existe uma
cadeira de projecto final onde os alunos podem propor projectos a realizar, ou
escolher de entre projectos propostos pela instituição.

Eu já fiz essa cadeira (com um projecto que eu propus), pelo que não me estou a
candidatar para o realizar.

Mas estou a mencionar este assunto porque seria uma excelente ideia contactar
uma universidade (UAb, IST ou outra) para propor a realização deste projecto.

Curiosamente, há um colega meu que propôs um projecto precisamente na área
da medicina (um software para tratamento de fichas antigas, penso eu que para
o Instituto de Oncologia do Porto, ou algo assim).

É uma questão de definir o que é efectivamente necessário, para que se possam
elaborar os requisitos para a implementação do software.

Sinergia Universitária!
[kiss]
 
A nossa parceria é com a Universidade de Aveiro.
Eles até já devem ter algo do género, tipo um script que faça o trabalho.
Tenho que lhes pedir isso![kiss]

Entretanto, e voltando ao assunto deste tópico, o excel, já tenho outra dúvida (sou um chato crónico) que espero ser mais simples.

É possível inserir numa célula do excel texto que vou buscar a uma base de dados online?
O que eu queria era, para cada uma das entidades anotada na coluna UniprotKB AC importar o nome para a célula ao lado (coluna name) a partir de uma base de dados online.

I9OT76K.jpg


De preferência sem aprender sql[:D]
 
Relativamente ao problema que coloquei no post anterior, já arranjei forma de ter uma tabela de excel onde tem a correspondência do código da coluna UniProtKB AC com o nome a colocar na coluna "Name". Ou seja, já não é preciso importar da web.

Agora só preciso de ajuda para fazer uma fórmula que para cada célula da coluna A, vá procurar na tabela que tenho qual o nome que lhe corresponde e colocá-lo na coluna B.
 
Relativamente ao problema que coloquei no post anterior, já arranjei forma de ter uma tabela de excel onde tem a correspondência do código da coluna UniProtKB AC com o nome a colocar na coluna "Name". Ou seja, já não é preciso importar da web.

Agora só preciso de ajuda para fazer uma fórmula que para cada célula da coluna A, vá procurar na tabela que tenho qual o nome que lhe corresponde e colocá-lo na coluna B.

A solução poderá depender da estrutura da tabela.

Contudo a função PROCV do Excel deverá resolver o problema.
 
Muito obrigado pela ajuda.apr:)
Com a função que me aconselhaste (VLOOKUP em inglês) e alguma tentativa e erro, já consegui fazer o que queria![kiss]


Ui! Tenho pesadelos com o raio dessa fórmula! A ultima briga que tive/tenho com ela é o facto de não conseguir ir buscar valores para lá da nona coluna...[8b]
 
Por acaso, colunas só precisei de 3 (mas fico já de sobreaviso quando precisar de mais)!
Não podes separar em várias tabelas com 9 colunas e depois a fórmula ir buscar às várias tabelas?

Quanto às linhas, fez-me 9735 sem qualquer problema![kiss]
 
Por acaso, colunas só precisei de 3 (mas fico já de sobreaviso quando precisar de mais)!
Não podes separar em várias tabelas com 9 colunas e depois a fórmula ir buscar às várias tabelas?

Quanto às linhas, fez-me 9735 sem qualquer problema![kiss]

É o que estou a tentar agora! Mas ainda não consegui que resultasse, é do meu ficheiro de clientes, na coluna da direita tenho o numero de cliente, na seguinte o nome e depois a morada e so on and so on...
Depois criei um ficheiro para prencher automaticamente as guias de transporte e os CMR´s onde preciso de informações que me vão até á 14ª coluna, só que ao fecher a fórmula com um numero superior a 9 dá-me #ERROR[8b] [8b]
Também tentei pôr os numeros de cliente igualmente na 5ª coluna mas não dá! O raio da formula só liga aos valores da coluna mais á esquerda...:sh)
 
Ainda bem que resolveste o problema.

Quanto à tentativa e erro. É o melhor método de aprendizagem que conheço, mas uma leitura à ajuda do Excel também costuma resultar.

Um bom trabalho.

Quanto à questão colocada pelo Request, desconheço qual o limite de colunas que pode ser usado nesta função e na ajuda do Excel não refere qualquer limitação. Contudo funciona em tabelas com muito mais de 9 colunas, pelo que algum problema deve existir na tabela.

A coluna onde vai ser procurado o valor deve estar ordenada, pois caso contrário os resultados podem não estar corretos. Embora não obrigatório é sempre bom utilizar o último parâmetro da função (V/F).

Sobre o assunto diz a ajuda do Excel:


  • procurar_intervalo Opcional. Um valor lógico que especifica se deseja que que PROCV localize uma correspondência exacta ou uma correspondência aproximada:
    • Se procurar_intervalo for VERDADEIRO ou omitido, é devolvida uma correspondência exacta ou aproximada. Se não for encontrada uma correspondência exacta, é devolvido o valor maior seguinte que seja menor que valor_proc.
Importante Se procurar_intervalo for VERDADEIRO ou omitido, os valores da primeira coluna da matriz_tabela têm de ser colocados por ordem ascendente; caso contrário, PROCV poderá não devolver o valor correcto.
Para obter mais informações, consulte Ordenar dados num intervalo ou numa tabela.
Se procurar_intervalo for FALSO, os valores na primeira coluna da matriz tabela não precisam de estar ordenados.

  • Se o argumento procurar_intervalo for FALSO, a função PROCV só encontrará uma correspondência exacta. Se houver dois ou mais valores na primeira coluna da matriz_tabela que correspondem ao valor_proc, é utilizado o primeiro valor encontrado. Se não for utilizada uma correspondência exacta, é devolvido o valor de erro #N/D.

PS: Em algumas situações pode resultar melhor a combinação das funções CORRESP e ÍNDICE.
 
Última edição:
tenho uma dúvida...

tenho dados que preciso de cruzar, isto é, tenho o mesmo número em mais do que uma célula, e pretendo reunir este número com as diversas entradas que o mesmo pode ter(neste caso apenas 2), que depois têm diferentes valores, daí os ter que analisar.

tenho resolvido com uma pivot table, mas não existe uma forma mais simples?:confused:

obrigado!
 
Voltar
Superior