Forum Think Finance - Bolsa e Forex
Geral => Sistemas Automáticos => Tópico iniciado por: rs_trader em 2014-03-23 15:10:04
-
É possível em Excel por duas series históricas uma por cima da outra com uma única escala de tempo?
Dá para por no mesmo gráfico duas series com escalas diferentes, mas eu queria uma por cima da outra.
-
Não é essa até a forma "default" de apresentar séries? (as duas na mesma escala Y)
-
Se assumires uma coluna com a escala do tempo, e as outras 2 com a informação histórica, não daria?
-
deixo aqui um exemplo.... são três gráficos diferentes.
o que eu queria era um único gráfico mas em 3 "panos" separados e com uma única escala de tempo.
No meu exemplo, se eu mexer em alguma coisa, o inicio de um fica logo desalinhado com o início dos outros...
-
Sem ser no mesmo gráfico, não me parece que o Excel consiga. Deve ser necessário um programa específico para apresentações, para conseguir isso.
-
encontrei isto mas não percebi bem....
http://peltiertech.com/Excel/ChartsHowTo/PanelUnevenScales.html (http://peltiertech.com/Excel/ChartsHowTo/PanelUnevenScales.html)
-
É uma forma extremamente confusa em que se usa um só gráfico para simular os vários como tu queres.
-
Não vejo grande interesse nisso, mas pode ser feito á unha.
Constrois um rectangulo suf grande para conter os vários graficos.
Formatas os graficos de modo a que a largura da escala dos tempos seja igual para todos.
Nos graficos retiras a moldura (depois será o recatangulo)
Para os grafico com exceção do que esta mais em baixo, metes as abscissas sem nada (até podes deixar como estão e sobrepondo a parte superior do grafico que esta logo abaixo esconde as abcissas)
Arrastas os graficos para dentro do rectangulo
Ajustas o tamanho do rectangulo, e pode fazer as mariquices que quiseres
agrupas tudo
e ficas com algo como os da Bloomberg
-
Não vejo grande interesse nisso, mas pode ser feito á unha.
Constrois um rectangulo suf grande para conter os vários graficos.
Formatas os graficos de modo a que a largura da escala dos tempos seja igual para todos.
Nos graficos retiras a moldura (depois será o recatangulo)
Para os grafico com exceção do que esta mais em baixo, metes as abscissas sem nada (até podes deixar como estão e sobrepondo a parte superior do grafico que esta logo abaixo esconde as abcissas)
Arrastas os graficos para dentro do rectangulo
Ajustas o tamanho do rectangulo, e pode fazer as mariquices que quiseres
agrupas tudo
e ficas com algo como os da Bloomberg
e o que tenho feito. Mas basta a escala da direita mudar... ter mais ou menos numeros.... para desalinhar e ter de alinhar novamente.
-
Mais uma dúvida há alguma formula que possa dar a interceção de uma linha com uma coluna?
Exemplo:
Eu quero o valor da linha 27.10.1997 (cujos valores constam da coluna A) e a serie .TED INDEX (cujas series estão na linha 1.)
-
Não vejo grande interesse nisso, mas pode ser feito á unha.
Constrois um rectangulo suf grande para conter os vários graficos.
Formatas os graficos de modo a que a largura da escala dos tempos seja igual para todos.
Nos graficos retiras a moldura (depois será o recatangulo)
Para os grafico com exceção do que esta mais em baixo, metes as abscissas sem nada (até podes deixar como estão e sobrepondo a parte superior do grafico que esta logo abaixo esconde as abcissas)
Arrastas os graficos para dentro do rectangulo
Ajustas o tamanho do rectangulo, e pode fazer as mariquices que quiseres
agrupas tudo
e ficas com algo como os da Bloomberg
e o que tenho feito. Mas basta a escala da direita mudar... ter mais ou menos numeros.... para desalinhar e ter de alinhar novamente.
O guru do link que apontaste não arranjou solução mais simples que normalizar 1º os dados e depois usar uma macro especifica para colocar os labels. Por isso não deve ser coisa de tiro e queda.
-
Mais uma dúvida há alguma formula que possa dar a interceção de uma linha com uma coluna?
Exemplo:
Eu quero o valor da linha 27.10.1997 (cujos valores constam da coluna A) e a serie .TED INDEX (cujas series estão na linha 1.)
Função VLOOKUP
neste caso se comulaunas forem A, B e C e linhas começar em 1
é VLOOKUP(A12;A1:C50;3;FALSE)
-
sim o vlookup eu já uso mas obriga-me a por o numero da coluna manualmente.
Mas agora encontrei CORRESP (em português) que acho que me permite mudar automaticamente o numero da coluna.
-
vlookup, grandes memorias... nunca mais toquei no excel :D
-
queria programar uma função que passasse a seguinte informação:
se x<2 então 0; se 3<x>=2 então 1; se x>=3 então 2.
É possível colocar tudo isto numa fórmula, de forma a ir buscar o 0,1 ou 2 conforme o resultado?
Obrigado.
-
Podes fazer com IF/SE encadeados.
-
queria programar uma função que passasse a seguinte informação:
se x<2 então 0; se 3<x>=2 então 1; se x>=3 então 2.
É possível colocar tudo isto numa fórmula, de forma a ir buscar o 0,1 ou 2 conforme o resultado?
Se o valor que queres analisar estiver na célula A1 basta fazer:
=IF(A1<2,0,IF(A1>=3,2,1))
-
deu erro
-
deu erro
Tens em português ou inglês o Excel?....
-
Podes ter o delimitador como ponto e virgula em vez de virgula. Tenta assim:
=IF(A1<2;0;IF(A1>=3;2;1))
-
já deu bem.
Ainda deu erro "Nome?" só passado algum tempo é que me lembrei que deveria ser Se. ;D
Obrigado
-
Não sabia que os nomes das funções também mudavam nas versões não inglesas do Excel
-
Não sabia que os nomes das funções também mudavam nas versões não inglesas do Excel
Mudam. E as teclas de atalho, também.
Porém, no caso das funções, se tu tiveres um ficheiro escrito em pt-pt, e depois abri-lo no computador cujo office esteja em inglês, o Excel faz a conversão automática.
Só conheço uma excepção, funcão CEL, em que há uma opção para "nome.ficheiro", e que nao muda conforme o idioma do office em que estás a trabalhar.
-
A MSFT gosta dos portugueses/BR
Daí a minha pergunta ao Local...
Sim, a conversão costuma ser automática entre PT e EN.
Desconhecia essa CEL...
-
A MSFT gosta dos portugueses/BR
Podia gostar um bocadinho mais... houve uma mudança completamente absurda na sequência das várias teclas de atalho, na transição do Office 2010 para o 2013.
-
Bom dia, cá estou eu outra vez! ;D
Tenho o excel 2010 e queria colocar um add-in, mas os passos aqui referidos já não são os certos. E o sortcut também não funciona. Por acaso sabem-me dizer como ir buscar o add-in?
Go to the add-in manager (keyboard shortcut alt+t+i) and click on the Browse... button.
Browse to the folder you just created, and select the XLA file from that folder.
Obrigado. :)
-
Se for um addin do próprio excel que não tenhas seleccionado na altura da instalação, basta ir a File (ficheiro ?), Options (opções ?), Addins (?) e em principio aparece-te como disable e basta torna-lo enable.
-
estou mesmo a dormir... Afinal até tenho o "ficheiro".
penso que seja suplemento, depois vou experimentar.
Se fosse cão mordia-me. :)
-
Confirmo, em português add in é suplemento. Obrigado
-
tenho uma folha com fórmulas em diversas colunas, mas queria que elas apenas aparecessem caso escrevesse nessa linha.
como me aparece actualmente
-
ISBLANK ou ISNUMBER
-
tenho uma folha com fórmulas em diversas colunas, mas queria que elas apenas aparecessem caso escrevesse nessa linha.
como me aparece actualmente
Colocas a formula dentro de IFERROR(formula) ou então crias regras com IF...
-
obrigado aos dois, vou experimentar.
-
Estou com duvidas no cálculo da rentabilidade anual no excel.
Supondo estas duas carteiras:
A primeira começou em 04-09-2012 com 16750 euros e terminou em 22-02-2013 com 23849,94 euros.
A segunda começou em 11-03-2013 com 25000 euros e terminou em 31-01-2014 com 27455,06 euros.
Como posso calcular a rentabilidade anual no excel com estes resultados?
-
Pesquisa por "time weighted return".
Outra forma é simplesmente anualizares o seguinte:
04-09-2012 a 22-02-2013
100 -> 142.39
11-03-2013 a 31-01-2013
142.39 -> 156.37
Ou seja, 56.37% em 1.33 anos, grosso modo ... dá cerca de 39.95%/ano, compostos.
(na realidade um pouco mais porque há ali uma paragem de cerca de 15-20 dias)
-
Days = EndDate - StartDate
Return = (EndValue-StartValue)/StartValue
ROR =(1+Return)^(365/Days)-1
-
No Excel existe a função XIRR que calcula a rentabilidade usando o metodo dos cash flows. É uma extensão da função IRR e admite datas arbitrárias para os movimentos.
Neste caso seria
=XIRR({-16750;23849,4;-25000;27455,06};{"4/9/12";"22/2/13";"11/3/13";"31/1/14"})
o que da uma rentabilidade anualizada de 38,1%.
O problema do XIRR é que tens de colocar valores á mão (não podes colocar uma celula onde vai ler valores e datas), ou entao desenvolver uma macro
Outra alternativa é usar o TWRR.
Para o periodo entre 4/9/12 ate 31/1/14 tens
Periodo entre 4/9/12 ate 22/2/13 23849,4/16759=1,42
Perido entre 11/3/13 e 31/1/14 2745506/25000=1,1
Logo desde o inicio ate 31/1/14 dá 1,42*1,1-1=56% num periodo de 1,4 anos.
Normalizando para um ano dá 1,56^(1/1,4)-1=37,4%
-
Tenho duas colunas com texto.
Consigo unir o texto da célula A com o texto da célula B ?
-
Sim, se tiveres o texto na A1 e B1, basta fazeres em C1:
=A1&B1
Se quiseres meter um espaço no meio:
=A1&" "&B1
-
excelente! era isso mesmo!
-
Tenho tabelas em dois separadores e queria:
Se valor de A1 (separador 1) = Valor encontrado no range da coluna A (separador 2) então valor da coluna/célula B (separador 2) correspondente.
-
Usa a função VLOOKUP (em Português deve ser algo tipo PROCV).
-
Tenho tabelas em dois separadores e queria:
Se valor de A1 (separador 1) = Valor encontrado no range da coluna A (separador 2) então valor da coluna/célula B (separador 2) correspondente.
algo do estilo
se(A2=$A$1,A2,0)
-
Usei a função indicada pelo inc e funcionou!
-
Incognitus, Mystery, Zenith: Obrigado.
Encontrei uma folha de calculo que faz o calculo do TWR e do XIRR.
Deu um resultado ligeiramente diferente do que o Zenith escreveu. Ao Zenith o XIRR deu 38,1% e o TWR deu 37,4%, e pela folha de calculo o XIRR deu 36,41% e o TWR deu 37,36%.
Vejam sff se coloquei bem os valores e se a folha de cálculo está certa.
A folha de cálculo está no anexo.
A primeira carteira começou em 04-09-2012 com 16750 euros e terminou em 22-02-2013 com 23849,94 euros.
A segunda carteira começou em 11-03-2013 com 25000 euros e terminou em 31-01-2014 com 27455,06 euros.
Tendo em conta que existem várias formas de calcular a rentabilidade anual e que o resultado obtido por cada uma é diferente, importa saber qual é a forma mais usual e consensual de apresentar a rentabilidade anual. Qual é?
-
Incognitus, Mystery, Zenith: Obrigado.
Encontrei uma folha de calculo que faz o calculo do TWR e do XIRR.
Deu um resultado ligeiramente diferente do que o Zenith escreveu. Ao Zenith o XIRR deu 38,1% e o TWR deu 37,4%, e pela folha de calculo o XIRR deu 36,41% e o TWR deu 37,36%.
Vejam sff se coloquei bem os valores e se a folha de cálculo está certa.
A folha de cálculo está no anexo.
A primeira carteira começou em 04-09-2012 com 16750 euros e terminou em 22-02-2013 com 23849,94 euros.
A segunda carteira começou em 11-03-2013 com 25000 euros e terminou em 31-01-2014 com 27455,06 euros.
Tendo em conta que existem várias formas de calcular a rentabilidade anual (a DIF usa “365 dias Sharpe Ratio”, e existem outras formas como "Rate of return", "ROC return" etc) e que o resultado obtido por cada uma é diferente, importa saber qual é a forma mais usual e consensual de apresentar a rentabilidade anual. Qual é?
Está bem calculado. A diferença do XIRR relativamente ao que eu tinha calculado deve-se a que eu coloquei que liquidaste a carteira em 22/3/13 e reinvestitse tudo mas 1150€ em 11/3, enquanto que tu consideraste que nada houve em 22/3 e em 11/3 somaste 1150Eur.
O método dos cash flows pressupoe que é tudo reinvestido á mesma taxa, e ao fazer as contas é como se retirasse os 17 dias, e portanto num caso tiveste os cerca de 500-17 dias para realizar os ganhos todos (17 dias de ferias) e no outro é como se tivesses usado os dias todos.
Na maioria dos casos a diferença é pequena mas em periodos em que há longos intervalos de inactividade é precisoter cuidado
Por exemplo se considerarmos alguem que em 1 Jan investe 100 em 30 Jun vale 110 e liquida, tem 10% de ganho o que dá21% anualizado. Se resolver em 1 Jul voltar a reinvestir tudo mais 10 (120), e no final do ano a carteira valer 132 tem no 2º semestre 10% de rentabilidade e dá 21% anualizado. Usando o XIRR com entradas em 1 Jan e 1 Jul e saidas em 30 Jun e 31 dez da o mesmo valor de 21% (talvez umas centesimas de diferença).
No entanto se investir 100 em 1 Jan e carteira valer 110 em 31 Jan, liquidar e voltar a investir 120 em 1 Dez e receber 132 em 31 Dez a renatbilidade que o XIRR vai calcular aproxima-se dos 200% (proximo dos 10% mensal), porque ao fazer as contas consideras que tens potencial de repetir performance todos os meses mas simplemente resolveste ir de ferias :-)
O TWRR tem um problema semelhante mas na quantidade. Se investires em 1 Jan 100 e em 30Jun valer 150 e liquidares e depois em 1 Jul investires 1000 e carteira não ter em 31 Dez valorização nenhuma, a aplicação simples do TWRR vai dar uma rentabilidade de 50%, o que dada a discripenacia de valores entre o investido no 1º e 2º semestre não é realista. Uma medida mais proxima da realidade deveria dar um peso de 10 á rentatibilidade do 2º S e peso de 1 à do 1ºS, e então a rentabilidade global vinha para valores á volta de 11%.
-
Para mim o método dos cash flows é o mais realista (os outros podem em muitos casos ser considerados com aproximações com cálculos simplificados do metodo dos cash flows).
No método dos cash flows há que ter o cuidado de quando se considera periodos longos para aferir a rentabilidade das carteiras, considerar os periodos em que as carteiras são liquidadas como periodos de retorno 0 (ou considerar aplicações em cash como sendo parte da cateira), caso contrario se em 3 anos houve um total de 1 ano em que carteira esteve liquidada (for falta de oportunidades) a rentabilidade global vem calculada como sendo sobre um periodo de 2 anos.
o TWRR é uma boa aproximação se os valores em carteira não se alterarem muito ao longo do tempo, caso contrario há que corrigir com o peso apropriado.
A correção é simples: se no period i, o capital inicial for Vi, e a média dos Vi for Vmed, então em vez de usar o factor (1+ri), deve-se usar (1+ri)^(Vi/Vmed).
Ainda uma achega quanto ao método dos cash flows: considera que quando há uma saida da carteira esse capital é reinvestido a uma taxa igual á rentabilidade média. isso não tem problema se se considerar o cash como parte da carteira, mas se isso sai efetivamente da carteira (para consumo pessoal por exemplo), pode fazer com que a rentabilidade global da carteira possa divergir da do património global.
Isso tem algum interesse no calcula da YTM das obrigações por exemplo. O calculo da YTM considera que os dividendos são reinvestidos a uma taxa igual ao YTM. De facto é a única coisa razoável a assumir porque se for um banco a calcular isso não se vai por a adivinhar o que o investidor vai fazer com os dividendos.
Mas se a YTM for elevada e o investidor colocar os dividendos em DPs a rentabilidade final vai ser inferior á YTM calculada no inicio da compra, mas se investir os dividendos em acções com forte potencial de crescimento e acertar será superior. E se usar se investir os dividendos na compra de um colar que lhe permite conquistar a mulher dos seus sonhos, aí rentabilidade é incalculável mas elevadíssima ;D
-
Zenith, muito obrigado pela ajuda!
Vou passar a usar a fórmula do XIRR que deixaste.
Pelas pesquisas que fiz através do google fico com a ideia de que é a forma mais consensual.
=XTIR({- VALOR INICIO 1;VALOR FIM 1;- VALOR INICIO 2;VALOR FIM 2};{"DATA INICIO 1";"DATA FIM 1";"DATA INICIO 2";"DATA FIM 2"})
XTIR = XIRR
-
Zenith, muito obrigado pela ajuda!
Vou passar a usar a fórmula do XIRR que deixaste.
Pelas pesquisas que fiz através do google fico com a ideia de que é a forma mais consensual.
=XTIR({- VALOR INICIO 1;VALOR FIM 1;- VALOR INICIO 2;VALOR FIM 2};{"DATA INICIO 1";"DATA FIM 1";"DATA INICIO 2";"DATA FIM 2"})
XTIR = XIRR
Aqui tens sempre um problema, o teu valor de inico tem de ser sempre negativo (representa o investimento - cash flow negativo). Eu prefiro fazer tudo há "mão", ou seja, as formulas todas e não a formula do Excel.
-
Precisava de exportar (penso que só dá para fazer copy) algumas tabelas de opções do yahoo como esta:
http://finance.yahoo.com/q/os?s=SPY&m=2014-09-05 (http://finance.yahoo.com/q/os?s=SPY&m=2014-09-05)
mas está a sair-me tudo desformatado. Alguém sabe como é que posso fazer ?
-
Experimentei e com excepção do separador decimal (uso a virgula) saiu-me bem fazendo copy and paste (uso Excel 2007)
Fazendo um import from web também sai bem claro com excepção do separador e aqui também não aparecem nenhumas cores.
-
Obrigado Zenith. O meu é o 2010 e o Copy paste, mesmo com as várias opções de paste não funcionam mas nem me lembrei do import data from web. Bem metida. Aí já funcionou perfeitamente. Obrigado !
-
Alguém sabe dizer como comprar, em Portugal, um Excel versão em inglês?
-
Se não fores usar algo incrivelmente complexo, ficas bem servido sem comprar nada - usando o OpenOffice ou similar.
-
Hei-de ir ver.
Obrigado.
-
boas pessoal,
eu queria criar um excel onde conseguisse tirar tabelas da net e que ele fossem actualizando os dados á medida que eles são actualizados pelo site, por exemplo, no MSN Money eles tÊm lá as tabelas, o objectivo era o excel sacar as tabelas de la é passar para o meu cada número, sendo actualizado cada vez que os valores eram alterados. muito mais simples mas também importante seria a cotação em tempo "real" no meu excel, e que desse para encadear com outras formulas, como por exemplo o ev...
se alguém me conseguisse ajudar, eu tentei fazer uma ligação web, mas ele só me deixa copiar a folha toda, não me deixa copiar um numero, por exemplo... sei que dessa forma actualiza, mas o problema é tirar o valor especifico.
cumprimentos
-
http://www.codeproject.com/Articles/740069/VBA-Macros-Provide-Yahoo-Stock-Quote-Downloads-in (http://www.codeproject.com/Articles/740069/VBA-Macros-Provide-Yahoo-Stock-Quote-Downloads-in)
-
com o excel dá, já encontrei forma, não consigo é as acções portuguesas
excel: dados, ligações externas, cotações das acções no MSN Money, e depois é só meter o índice seguido de uma virgula e o título! aparece essa informação toda. essa do Yahoo tens as acções portuguesas? no MSN Money não consigo encontrar...
-
De qq forma fazeres um sistema automático que cobre muitas acções para depois te preocupares com teres as (poucas) Portuguesas, não faz sentido...
-
Há algum problema com site do msn?
Excel não consegue ir buscar as cotações
-
Neste Windows 8, o Excel só acede às Funções F1, F2, ..., F12,
pressionando a respectiva tecla mas, em simultâneo a tecla FN,
á esquerda ao lado da CTRL. Isso é incómodo, pois essas teclas
estão encaminhadas para operações multimédia, salvo
se pressionando também a FN.
Mas já me sucedeu noutro computador, as tais Funções F
executarem-se sem teclar a FN.
Haverá alguma instrução que active ou desactive
aquela prioridade?
-
O ser preciso ou não o FN é normalmente configurado na bios, não depende do Windows.
Procura na bios por Fn function/priority, algo assim.
-
O ser preciso ou não o FN é normalmente configurado na bios, não depende do Windows.
Procura na bios por Fn function/priority, algo assim.
Obrigado, vou ver se consigo.
-
Uma forma alternativa ao VLOOKUP quando as linhas não estão por ordem alfanumérica ou quando a coluna onde pesquisar não está no início da tabela.
http://www.businessinsider.com/excel-index-match-vlookup-video-how-to-2015-2 (http://www.businessinsider.com/excel-index-match-vlookup-video-how-to-2015-2)
-
O ser preciso ou não o FN é normalmente configurado na bios, não depende do Windows.
Procura na bios por Fn function/priority, algo assim.
Obrigado, vou ver se consigo.
Não sei alterar.
Mas confirmo que umas vezes as funções F1... F12,
umas vezes activam-se por click directo das teclas,
outras vezes requerem a pressão simultânea da tecla FN.
É misterioso! :)
-
Assunto resolvido. No m/ Toshiba o bios activa-se pressionando F1.
Lá mexe-se não sei onde - não fui eu que o fiz - e muda-se a prioridade
das funções F's, de multimédia, para as normais de cálculo e teclado.
As preteridas passam a ser acedidas por simultânea pressão em FN.
-
Será que alguém me consegue ajudar? Estou a utilizar a seguinte formula para calculo de prestação sobre determinado crédito PGTO;
Quero apenas utilizar 3 variáveis da formula (isto é um exemplo);
Taxa a 5.5%;
Por 30 anos;
80.000€ em crédito
Quando insiro tudo na formula em excel -PGTO(5.5%;30;80000)/12 = 458,70€ / mês
Contudo deveria dar 454,23€ -> https://www.doutorfinancas.pt/simulador-de-credito/ (https://www.doutorfinancas.pt/simulador-de-credito/)
Alguém sabe como corrigir isto no excel?
-
É porque estás a usar valor anuais e não mensais. A mim dá-me os 454,23€:
=PMT(0.055/12,30*12,80000)
O PMT deve ser o teu PGTO (o meu Excel é em Inglês)
-
É porque estás a usar valor anuais e não mensais. A mim dá-me os 454,23€:
=PMT(0.055/12,30*12,80000)
O PMT deve ser o teu PGTO (o meu Excel é em Inglês)
Yep. Resolvido.
Muito Obrigado
-
=PMT(0.055/12,30*12,80000)
podem-me explicar a conta a bold?
Se são 30 anos de contrato, onde está isso espelhado?
-
=PMT(0.055/12,30*12,80000)
podem-me explicar a conta a bold?
Se são 30 anos de contrato, onde está isso espelhado?
São duas contas;
0.055 taxa anual / 12 meses depois tens a virgula,
a seguir 30 anos vezes 12 meses
-
he,he,he ióóóó
Obrigado. ainda estou a dormir
-
Ainda me estou a rir. Vai beber DOIS cafés Local ;D ;D ;D
-
Agora um pouco mais difícil... :D
Há 3 variáveis:
1 - quatro períodos no ano para diversos tipos de energia (I, II, III e IV)
2 - Cada período tem 4 tipos de energia (ponta, cheia, vazia e super)
3 - Período de faturação (consumo), divididos por tipos de energia
O objectivo seria criar uma fórmula (que imagino ser pelo Soma.se.s) que ao verificar o período de faturação, fosse buscar o preço unitário e o multiplicasse pelo consumo de energia.
-
As fórmulas ficavam mais simples se as datas não estivessem misturadas com texto (não seria necessario usar left e poder-se ia usar Vlookup).
Mantendo como está uma formula possivel para a célula L2 (primeira linha de vazio) é
=INDIRECT("D" & ((SIGN(LEFT($F2;10)+0,01-LEFT($B$2;10))+1)/2*2 +(SIGN(LEFT($F2;10)+0,01-LEFT($B$6;10))+1)/2*4 +(SIGN(LEFT($F2;10)+0,01-LEFT($B$10;10))+1)/2*4 +(SIGN(LEFT($F2;10)+0,01-LEFT($B$14;10))+1)/2*4 +2))*G2
LEFT(), devolve os 10 primeiros caracteres à esquerda (data inicial).
(SIGN(LEFT($F2;10)+0,01-LEFT($B$2;10))+1)/2 devolve 1 se a data inicial de consumo for posterior á data inicial do periodo I e 0 caso contrario. Se multiplicarmos por 2 obtemos a linha onde começam os valores do periodo I
Fazendo o mesmo para os periodos II, III e IV e multiplicando por 4, vamos obter 6 se posterior a II e anterior a 3, 10 se posterior a III e anterior a IV, 14 se posterior a IV
Para evitar datas coincidentes (que daria sign=0), soma-se 0,01 (valor desde que pequeno é irrelevante).
Soma + 2 é para o caso do vazio descer 2 linhas relativamente à linha das datas do periodo para encontrar o preço do vazio nesse periodo (para as outras é somar 0, 1 ou 3)
Depois usando indirect("D"; nº obtido) é ir buscar o preço para a categoria no periodo corresponde.
Finalmente multiplica-se pelo consumo (G2).
Nota: as datas finais estão lá mas são desnecessárias
-
Nunca usei nem conhecia essa função LEFT do excel!
Ela é útil propriamente em que circunstância, por exemplo!?
-
Obrigado Zenith. vou estudar a fórmula e aprender a fazer este tipo de "macacadas".
-
O Zenith fez a coisa como deve ser, à profissional. Eu, como seria de esperar, vandalizei a tua folha de cálculo :D
Meti os preços em tabela e o período dos consumos (inicial e final) em células diferentes.
O objectivo foi fazer uma coisa em que se use apenas Vlookup, como estás habituado. A posição que o vlookp vai buscar é obtida pelo match, que também é uma formula simples.
Por exemplo no Q2 fica o seguinte:
VLOOKUP($I2,$B$19:$G$23,MATCH(Q$1,$B$19:$G$19,0))
O I2 é a data inicial do consumo porque é essa que determina o preço.
O $B$19:$G$23 é a tabela de preço. Ele vai pesquisar a data inicial lá.
Resta portanto saber qual é a coluna da tabela que o Vlookup vai devolver.
Para saber se é a coluna 3 (cheia), 4 (ponta), 5 ou 6 basta usar o MATCH(Q$1,$B$19:$G$19,0).
Este Match vai pesquisar no topo qual é a coluna (vazio, super, ponta ou cheia). Depois vai procurar na tabela de preços onde é que está essa palavra vazio, super, ponta ou cheia.
E pronto. Fica completo o Vlookup.
Se quiseres manter a formatação como tens na tua folha, complica significativamente porque tem de se usar o LEFT como o Zenith fez e verificar uma série de pontos. Foi por isso que alterei.
O Zenith serviu o cliente na perfeição. No meu caso o cliente pode escolher qualquer cor, desde que seja preto. ;D
-
Obrigado aos dois, mas isto é complicado para mim, passa os meus conhecimentos.
Sobre o quadro dos valores, não pode ser alterado, porque tem mais fórmulas e dados relacionados.
Sobre a fórmula do zenith, dá-me "#NOME?". Será dos espaços?
-
Sim, na formula do Zenith tens de tirar os espaços. E também falaste em SOMA SE, o teu Excel está em Português ? É que as formulas do Zenith são em inglês.
-
hááááááááá
vou tomar café... :D
-
Está quase... :D
obrigado
-
Obrigado aos dois, mas isto é complicado para mim, passa os meus conhecimentos.
Sobre o quadro dos valores, não pode ser alterado, porque tem mais fórmulas e dados relacionados.
Sobre a fórmula do zenith, dá-me "#NOME?". Será dos espaços?
Copiei a formula e acrescentei espaços para ser mais legivel. A não ser que tenha colcado espaços no sítio errado, não é daí que advem o problema, é algo que eu costumo fazer com fórmulas complicadas para depois as perceber quando tiver de olhar para elas mais tarde.
O probema é ce certeza teres o excel em portugues e não encontra nenuma função com os nomes que usei.
Suponho que ao abrires os nomes são automaticamente traduzidos.
-
Nunca usei nem conhecia essa função LEFT do excel!
Ela é útil propriamente em que circunstância, por exemplo!?
As funções LEFT e RIGHT podem ser uteis para remover informação que não interessa ou separar a informação.
Por exemplo supõe que tens uma lista de nºs tel que inclui o prefixo internacioal. Podes estar interessado em colocar o prefixo e nº em colunas separadas, e isso pode ser feito com LEFT-RIGHT.
Da mesma forma endereços que tem tudo junto e queres colocar Rua, Cidade, código postal em colunas diferentes.
-
Acabei de ficar a saber que os espaços não invalidam a fórmula no Excel. Sempre foi assim ?! Há tantos anos a usar isto e nunca me tinha apercebido (só uso o ALT+Enter para partir linhas, mas nunca usei espaços que é o mais óbvio).
-
Acabei de ficar a saber que os espaços não invalidam a fórmula no Excel. Sempre foi assim ?! Há tantos anos a usar isto e nunca me tinha apercebido (só uso o ALT+Enter para partir linhas, mas nunca usei espaços que é o mais óbvio).
Pelo menos desde o 2007 é possível
-
Para clareza das fórmulas é importante!
Vou experimentar. Fui sempre cuidadoso,
minucioso, a escrevê-las! Agora, já vai
poder ser à Lagardère! -:)
-
também não sabia.
-
Agora um pouco mais difícil... :D
E se a leitura abranger dois períodos? Uma parte num período e outra noutro?
-
Resolvido. Obrigado na mesma.
Como complicou, já se pôde criar uma tabela com as datas...
-
Dados FREE, com 15 min delay, e barras de 1 min, para carregar para o excel...?
Anyone? Help?
-
Dados FREE, com 15 min delay, e barras de 1 min, para carregar para o excel...?
Anyone? Help?
Anyone?
-
txiii... nem um comment?
:'(
-
Será que isto ajuda?
https://www.quantshare.com/sa-636-6-new-ways-to-download-free-intraday-data-for-the-us-stock-market (https://www.quantshare.com/sa-636-6-new-ways-to-download-free-intraday-data-for-the-us-stock-market)
-
Será que isto ajuda?
https://www.quantshare.com/sa-636-6-new-ways-to-download-free-intraday-data-for-the-us-stock-market (https://www.quantshare.com/sa-636-6-new-ways-to-download-free-intraday-data-for-the-us-stock-market)
Vou ver! Obrigado!
-
(https://media.licdn.com/dms/image/C4E22AQHH3bUPh4bADg/feedshare-shrink_1280/0?e=1574294400&v=beta&t=ZB0ZsdyY0xGjM6rKZeio8yZ3_QyYKdZ6lPTLmNl1lXc)
-
Tenho 2 folhas de dados de excel com milhares de linhas.
Cada linha corresponde a uma pessoa. Cada pessoa tem um número de identificação único.
Precisava de 2 coisas:
A- Selecionar as pessoas que constam das duas tabelas
B- Criar uma terceira tabela em que constassem apenas as pessoas que estão presentes em ambas tabelas que tenho e, na mesma linha, os dados das 2 tabelas referentes a essa pessoa.
Exemplo
Tabela 1 Tabela 2 --> Tabela 3
Pessoa Valor Pessoa Altura Pessoa Valor Altura
3 4 2 160 5 5 165
5 5 4 170 8 6 184
8 6 5 165
9 9 8 184
Alguém consegue ajudar?
-
Tenho o meu Excel a correr 20 mil linhas. Sempre que actualizo as 20 mil linhas com open,high,low,close,volume.. demora me 1 min. É normal?
Isto é, cada vez que mudo de stock, tenho que ficar a olhar 1 min para o ecrãn...
-
Tenho 2 folhas de dados de excel com milhares de linhas.
Cada linha corresponde a uma pessoa. Cada pessoa tem um número de identificação único.
Precisava de 2 coisas:
A- Selecionar as pessoas que constam das duas tabelas
B- Criar uma terceira tabela em que constassem apenas as pessoas que estão presentes em ambas tabelas que tenho e, na mesma linha, os dados das 2 tabelas referentes a essa pessoa.
Exemplo
Tabela 1 Tabela 2 --> Tabela 3
Pessoa Valor Pessoa Altura Pessoa Valor Altura
3 4 2 160 5 5 165
5 5 4 170 8 6 184
8 6 5 165
9 9 8 184
Alguém consegue ajudar?
Não estou a ver forma de fazer isso automaticamente, sem ser com macro.
Manipulando as tabelas, a forma mais fácil penso que seja fazendo o merge das tabelas e depois filtrar aqueles registos que têm ambos os campos preenchidos.
Ver aqui o "Merge Tables Wizard - quick way to join tables by matching columns":
https://www.ablebits.com/office-addins-blog/2018/10/31/excel-merge-tables-matching-columns/ (https://www.ablebits.com/office-addins-blog/2018/10/31/excel-merge-tables-matching-columns/)
-
Tenho o meu Excel a correr 20 mil linhas. Sempre que actualizo as 20 mil linhas com open,high,low,close,volume.. demora me 1 min. É normal?
Isto é, cada vez que mudo de stock, tenho que ficar a olhar 1 min para o ecrãn...
Quando mudas o simbolo provavelmente está a ler a data da source, não ? Nesse caso não é propriamente o Excel que é lento mas sim a comunicação com a source.
-
Tenho 2 folhas de dados de excel com milhares de linhas.
Cada linha corresponde a uma pessoa. Cada pessoa tem um número de identificação único.
Precisava de 2 coisas:
A- Selecionar as pessoas que constam das duas tabelas
B- Criar uma terceira tabela em que constassem apenas as pessoas que estão presentes em ambas tabelas que tenho e, na mesma linha, os dados das 2 tabelas referentes a essa pessoa.
Exemplo
Tabela 1 Tabela 2 --> Tabela 3
Pessoa Valor Pessoa Altura Pessoa Valor Altura
3 4 2 160 5 5 165
5 5 4 170 8 6 184
8 6 5 165
9 9 8 184
Alguém consegue ajudar?
Não estou a ver forma de fazer isso automaticamente, sem ser com macro.
Manipulando as tabelas, a forma mais fácil penso que seja fazendo o merge das tabelas e depois filtrar aqueles registos que têm ambos os campos preenchidos.
Ver aqui o "Merge Tables Wizard - quick way to join tables by matching columns":
https://www.ablebits.com/office-addins-blog/2018/10/31/excel-merge-tables-matching-columns/ (https://www.ablebits.com/office-addins-blog/2018/10/31/excel-merge-tables-matching-columns/)
Para a tabela 1 e 2, ir pelo copiar. Para a tabela 3 usar o procv.
-
Tenho 2 folhas de dados de excel com milhares de linhas.
Cada linha corresponde a uma pessoa. Cada pessoa tem um número de identificação único.
Precisava de 2 coisas:
A- Selecionar as pessoas que constam das duas tabelas
B- Criar uma terceira tabela em que constassem apenas as pessoas que estão presentes em ambas tabelas que tenho e, na mesma linha, os dados das 2 tabelas referentes a essa pessoa.
Exemplo
Tabela 1 Tabela 2 --> Tabela 3
Pessoa Valor Pessoa Altura Pessoa Valor Altura
3 4 2 160 5 5 165
5 5 4 170 8 6 184
8 6 5 165
9 9 8 184
Alguém consegue ajudar?
Como Auto disse a maneira mais elegante é construir uma macro.
Com funções do Excel tive de criar uma coluna extra
Admiitindo que tens os nºs das pessoas da tabela 1 na coluna A (1 a 13) e da tabela 2 na coluna C (1 a 13), a coluna intermedia é E e coluna final é G
1) na célula E1: =IF(ISERROR(MATCH(A1;C$1:C$13;0));"";A1) - vai ver se ha algum match entre A1 e coluna de pessoas da tabela 2 e assim sucessivamente. Se sim coloca o nº da pessoa se não deixa célula em branco
o problema é que os nºs não ficam necessariamnte consecutivos podendo haver células em branco pelo meio
2) Na célula F1: =IF(ISNUMBER(SMALL(E$1:E$13;ROW()));SMALL(E$1:E$13;ROW());""). Se na coluna obtida no passo 1 quando posicionado na linha 1 (ROW()) vai obter o valor mais pequeno da coluna E. Passando para F2 ROW() vai dar 2 e vai buscar o segundo valor mais pequeno e assim sucessivamente. Poder-se-ia usar apenas SMALL(E$1:E$13;ROW()), mas nesse caso depois de chegar ao ultimo nº com devolve #NUM (pode ser corrigido depois)
3) usar as funções Vlookup da maneira habitual.
Nota: se as tabelas començarem na linha L ==> ROW()-L+1
-
Tenho o meu Excel a correr 20 mil linhas. Sempre que actualizo as 20 mil linhas com open,high,low,close,volume.. demora me 1 min. É normal?
Isto é, cada vez que mudo de stock, tenho que ficar a olhar 1 min para o ecrãn...
Quando mudas o simbolo provavelmente está a ler a data da source, não ? Nesse caso não é propriamente o Excel que é lento mas sim a comunicação com a source.
Sim, estou a ler da data source.
Então vou reclamar com eles!
Thank you.
-
Eu estou-me a orientar pelas 20.000 linhas. Imaginando que eram 20.000 minutos, seriam cerca de 14 dias de data 24 horas.
Um feed tipo IQ feed não demora, nem perto, de 1 minuto para cuspir 14 dias em TF de 1 minuto, e já estou a contar com o tempo de processamento de um package de software gráfico tipo multicharts. No Excel, sendo raw data sem grafismos, tinha obrigação de ser ainda mais rápido.
----
Eu vou fazer uma petição para o Zenith mudar de nick e passar a chamar-se Mr. Excel. Este homem é uma enciclopédia do Excel. 8)
-
Eu até vou fazer o exercício anterior para tentar perceber como se faz.
Fazem-me sentir analfabeto. ;D
-
Eu estou-me a orientar pelas 20.000 linhas. Imaginando que eram 20.000 minutos, seriam cerca de 14 dias de data 24 horas.
Um feed tipo IQ feed não demora, nem perto, de 1 minuto para cuspir 14 dias em TF de 1 minuto, e já estou a contar com o tempo de processamento de um package de software gráfico tipo multicharts. No Excel, sendo raw data sem grafismos, tinha obrigação de ser ainda mais rápido.
----
Eu vou fazer uma petição para o Zenith mudar de nick e passar a chamar-se Mr. Excel. Este homem é uma enciclopédia do Excel. 8)
Eu tinha IQFeed e mudei para Esignal.
São 20 mil linhas de 1 min.
-
Obrigado pelas ajudas Auto, local e Zenith. Vou experimentar e depois dou notícias. Abraços
-
Eu estou-me a orientar pelas 20.000 linhas. Imaginando que eram 20.000 minutos, seriam cerca de 14 dias de data 24 horas.
Um feed tipo IQ feed não demora, nem perto, de 1 minuto para cuspir 14 dias em TF de 1 minuto, e já estou a contar com o tempo de processamento de um package de software gráfico tipo multicharts. No Excel, sendo raw data sem grafismos, tinha obrigação de ser ainda mais rápido.
----
Eu vou fazer uma petição para o Zenith mudar de nick e passar a chamar-se Mr. Excel. Este homem é uma enciclopédia do Excel. 8)
Já agora, o Multicharts vale a pena? Nunca usei...
-
----
Eu vou fazer uma petição para o Zenith mudar de nick e passar a chamar-se Mr. Excel. Este homem é uma enciclopédia do Excel. 8)
E deixava de estar no ponto mais alto tentando levar alguma luz às trevas da ignorância onde os neo-liberais cairam? :'(
-
Eu estou-me a orientar pelas 20.000 linhas. Imaginando que eram 20.000 minutos, seriam cerca de 14 dias de data 24 horas.
Um feed tipo IQ feed não demora, nem perto, de 1 minuto para cuspir 14 dias em TF de 1 minuto, e já estou a contar com o tempo de processamento de um package de software gráfico tipo multicharts. No Excel, sendo raw data sem grafismos, tinha obrigação de ser ainda mais rápido.
----
Eu vou fazer uma petição para o Zenith mudar de nick e passar a chamar-se Mr. Excel. Este homem é uma enciclopédia do Excel. 8)
Eu tinha IQFeed e mudei para Esignal.
São 20 mil linhas de 1 min.
Estou no chat da Esignal, a pedir ajuda... mas eles dizem que demorar esse tempo é normal... :(
que seca... (e este serviço custa-me 130 dollars por mes).
-
Já agora, o Multicharts vale a pena? Nunca usei...
É dificil responder. Depende do objectivo.
Eu trabalhei durante muitos anos com o Omegatrade Suite 2000 (vulgi tradestation) e EasyLanguage. Quando deixei de conseguir ter aquilo a funcionar usei o Meta mas o Meta é o que é, quer em linguagem, quem em grafismo.
Mais tarde experimentei o Multicharts e foi como se voltasse ao tradestation mais moderno, compativel com o feed da IB (e outros), com EasyLanguage, já tem um DOM razoável, agora tem gráficos com TPO e Delta charts, era o melhor nos renko, etc.
Penso que é inferior nos system testers pelo que vejo do Amibroker que o Neo e o RS postam aqui.
Carote mas para mim valeu/vale a pena.
-
Obrigado, vou explorar um trial.
-
Olááááá. Mais uma dúvida...
tendo duas datas, por exemplo:
Data de início / Data do fim
01/01/2019 / 01/02/2019
Quero passar essas duas datas para uma só coluna e uso a seguinte fórmula:
=PROCV(A4;dados;8;0) &" a "&PROCV(A4;dados;9;0)
Mas os dados que vão para a célula ficam assim:
43467 a 43497
Tentei formatar a célula com: "dd/mm/aaaa "a" dd/mm/aaaa", mas mesmo assim não deu.
Obrigado pela ajuda
-
Tens de formatar na formula que se usa. Assumindo que as datas estão em A1 e A2:
=TEXT(A1,"dd-mm-aa") & " a " & TEXT(A2,"dd-mm-aa")
(o meu office é inglês não sei se o text é texto)
O dd-mm-aa é como quiseres, claro. Pode ser dd/mm/aaaa ou outra forma qualquer.
-
Obrigado. Deu certo.
-
Parece que não deu certo... Isto porque a data está ligada a uma pesquisa noutra coluna, através do procv.
Ou seja, se encontrar a célula A2 de "dados do mês", ir buscar a data inicial e a data final.
Ele vai buscar as datas mas a formatação fica errada e as datas não são apresentadas como deve ser.
Desculpem lá, mas isto é demais para mim.
-
Para utilizares esta formula do TEXT (ou outra formula qualquer) tens de ter a celula onde está o PROCV formatada como geral e não como text (senão tudo o que lá escreveres é considerado texto e a partir daí teres lá uma formula ou os lusíadas é o mesmo para o Excel :D)
Portanto, primeiro Format - geral.
Depois é aplicares a formula que deixei do TEXT antes do PROCV. Anexo modificado. É só copiares para a tua.
-
Uma curiosidade.
Ando a começar a usar os Power Query.... ferramente de importação de dados de outras fontes para serem analisadas.
Em parte é uma ferramenta ETL.
Depois usar o Power Bi!
qq coisa como de "ouro mundo".
Nuna imaginei que estas ferramentas eram tão poderosas e de certa forma simples de juntar várias fontes de dados, tratá-los e usar... aqui ou até em Data Mining etc..
---
Quem tiver uma empresa, explore estas ferramentas!
-
Obrigado auto!
-
Há um atalho super útil para identificar os All Precedents, que é este: CTRL+SHIFT+{
https://www.google.com/search?q=select+all+precedents+excel+shortcut&ei=MPxYXqT3H4mmaKmJrJgC&start=60&sa=N&ved=2ahUKEwikz-3wlPTnAhUJExoKHakECyM4MhDw0wN6BAgMED8&biw=1920&bih=1014 (https://www.google.com/search?q=select+all+precedents+excel+shortcut&ei=MPxYXqT3H4mmaKmJrJgC&start=60&sa=N&ved=2ahUKEwikz-3wlPTnAhUJExoKHakECyM4MhDw0wN6BAgMED8&biw=1920&bih=1014)
Mas este atalho aparentemente só funciona nos teclados dos estados unidos, onde existe uma tecla específica para este género de parênteses. No meu teclado europeu, estas teclas estão misturadas nos 7's e nos 8's.
O mesmo atalho pode ser identificado através do menu do Go to Special, mas aí já são cliques a mais.
Eu tenho alguma forma de conseguir achar os mapeamentos dos atalhos "americanos" para os europeus?
-
Estou com a ultima versão do Excel.
Criei um ficheiro Excel para importar dados de um CSV. Neste versão importa sempre como tabela e tem por trâs o Power Query.
Quando altero o ficheiro CSV por outro e tento importar apesar de ter exatamente o mesmo numero de colunas, ele dá erro por o header dessas colunas não é o mesmo.
Por exemplo: Se no ficheiro CSV existia colunas com header 2005, 2006. 2007 e no novo existe 2004, 2005 e 2006 ele dá erro porque não encontra a coluna 2004.
Existe forma de ultrapassar isso? Em versões anteriores não tinha este problema com a importação sem usar tabelas.
Obrigado.
-
Podes colocar um print do erro?
-
É este.
-
Hmm, na tua descrição do erro dizes que o problema é não encontrar a coluna de 2014 (que em teoria será a primeira coluna no novo ficheiro), mas eu acho que a rotina não está é preparada para identificar que a última coluna seja diferente.
Estou a pensar num outro problema que às vezes me acontece, que é, quando faço importações deste género de dados na mesma sheet, ele não me deixa colar novos dados porque já identificou uma "ligação" no lugar de destino. Normalmente resolvo isso, indo ao menu das Conexões existentes e eliminando as conexões que existem lá.
Sinto que não estou a ser grande ajuda. :-[ Em algum sítio no teu ficheiro de destino, escreveste algum código em VBA, ou isso?
-
Solucionei o o problema editando manualmente os campos que ele espera encontrar no ficheiro no power query. Não é prático mas com pouco trabalho adicional resolve o problema.
-
No futuro,
carrega uma (con)versão
rápida, gratuita, à experiência!
-
tenho isto no Excel (não é só isto, é uma enormidade deles, com muito mais linhas e colunas)
como é que posso obter uma tabela com o número de vezes em que cada par aparece ?
se estivesse em linha era fácil com uma pivottable, mas estando assim não estou a ver como é que posso fazer de forma fácil.
-
tenho isto no Excel (não é só isto, é uma enormidade deles, com muito mais linhas e colunas)
como é que posso obter uma tabela com o número de vezes em que cada par aparece ?
se estivesse em linha era fácil com uma pivottable, mas estando assim não estou a ver como é que posso fazer de forma fácil.
não consegues.... if igual a EUR.USD count 1 ?
E correr sobre a tabela toda?
-
São duas dúzias de pares, não queria andar a fazer isso, até porque de vez em quando vai aparecer um que não tinha previsto.
O que queria era uma funcionalidade tipo pivot table que faz a contagem dos que existem com dois ou três clicks.
-
tenho isto no Excel (não é só isto, é uma enormidade deles, com muito mais linhas e colunas)
como é que posso obter uma tabela com o número de vezes em que cada par aparece ?
se estivesse em linha era fácil com uma pivottable, mas estando assim não estou a ver como é que posso fazer de forma fácil.
Da forma como a informação está organizada, acho que tens mesmo que ir lá com um Count.IF, estendendo o range da fórmula a toda a tabela.
-
É inacreditável que o Excel não tenha uma forma elementar de fazer isto. Na pior das hipóteses tenho de usar a formula TRANSPOSE, para criar uma tabela intermédia, e depois uma pivot table, mas estava a evitar isso.
-
Mek, agora estou sem computador para experimentar, mas há uma função que te lista todos os pares (sem meter os repetidos). Depois à frente de cada par podes meter uma função para contar quantas vezes se repete.
Isto são dois passos...
É isto que queres fazer?
-
Se o objectivo era calcular o nº de vezes que um determinado par aparece, então omo disse o Robusto e se entendi correctamente é usar countif (não sei qual o nome em português)
Se quiseres os resultados com mesma disposição dos pares (um array 2D), considerando que os pares estão em A1:N5
seria
=countif($A$1:$N$5;a1) e depois deslizar fórmula.
Mas pelo que percebi antes disso queres ter os pares numa coluna (ou linha).
Se um para aparecer duas ou mais vezes também vais obter duas ou mais vezes o mesmo resultado e só por inspeção visual é que vais ver os que são duplicados.
Se quiseres só um resultado por par, podes colocar os pares numa única coluna e depois na contagem ver se um particular ja foi calculadoe se sim deixar célula em branco
Exemplo 3linhas x 4 colunas
usar numeração de 0 até 3x4-1. Pode-se começar em 1 mas para mim fica mais fácil para usar resultado de uma divisão.
formula
=indirect(address(linha correspondente ao valor do indice; coluna correspondente ao valor do indice)
onde linha correspondente ao valor do indice vem dada por =MOD( ROW()-linha onde vai começar o array 1D); nº linhas do array 2D). neste caso num linhas 2D é 3
e
coluna correspondente ao valor do indicevem dada por FLOOR( (ROW()-linha onde vai começar array1D) / nº linhas do array 2D ; 1)+1
Penso que coisa parecida pode ser feita usando OFFSET (se calhar fica mais simples).
Isto usando fórmulas do Excel. O mais simples e flexível é escrever uma função em vba que transforma um array 2D NxM num array1D NMx1. Argumentos da função seriam range do array 2D (seleccionável com cursor), e saída ponto onde começa array 1D (também selecconável). Seria um código com 2 ciclos for em que conversão dos índices das células seriam feitas com formulas anteriores.
-
Mek, agora estou sem computador para experimentar, mas há uma função que te lista todos os pares (sem meter os repetidos). Depois à frente de cada par podes meter uma função para contar quantas vezes se repete.
Isto são dois passos...
É isto que queres fazer?
Isso já praticamente resolvia a questão sem chatices de muitos passos intermédios. Obrigado. Vou investigar a ver se descubro essa função.
-
Não sei se o Kitano se está a referir a alguma função do Excel (que desconheço) ou a um procedimento que se pode fazer com "Filter".
Selecciona-se o array2D e com Advanced Filter: copy to another location onde podes escolher "unique records only"
Requer é que colunas do array 2D tenham headers.
-
Há uma função para isso, se ligar o computador e descobrir já digo...
Zenith O countif em português é soma.se
-
Mek,
selecionas os dados transpões para uma coluna e seleccionas toda a coluna e depois vais ao separador dados - ferramenta de dados - remover duplicados.
ele ao eliminar os duplicados diz quantos foram removidos e quantos permanecem
-
Mek,
selecionas os dados transpões para uma coluna e seleccionas toda a coluna e depois vais ao separador dados - ferramenta de dados - remover duplicados.
ele ao eliminar os duplicados diz quantos foram removidos e quantos permanecem
Mas os dados compõem uma grelha. Como é que dá para transportar os dados assim de uma vez numa coluna só?
-
Não sou especialista...mas ou tentava usar a ferramenta de transpor os dados ou corria o remover suplicados coluna a coluna
Outra forma é selecionar a grelha toda e usar a formatação condicional para selecionar os valores duplicados ou exclusivos - também não sei bem o que ele quer fazer com os dados.
mek, se fosse possível colocares aqui a tabela, se calhar podíamos pegar e ver a melhor forma de o fazer...eu como não sou grande especialista é mais por tentativa e erro...
-
O propósito é bastante simples.
Para cada um dos dias, tenho um indicador calculado para cada um dos pares.
No fundo de cada dia tenho os cinco pares que tiveram os cinco valores mais altos desse dia.
O que quero é fazer uma tabela global que me mostre os pares que apareceram no TOP5 e quantas vezes.
Anexo a tabela exemplo. Claro que o original não tem apenas 20 dias, tem muito mais. Por isso é que precisava de algo minimamente automatizado, sem ter de andar a fazer copy - paste e transposes. Idealmente sem ter de fazer uma macro (se calhar vai ter de ser).
-
O resultado pretendido é isto (aqui fiz com pivot table porque fiz manualmente)
São 20 dias, cada um com TOP5.
A tabela mostra-me quais os pares que lá aparecem e quantas vezes.
(ver o post anterior)
-
Nzd.usd é para shortar?
:D
-
Os pares no top5 já estão a aparecer automatizados certo, o que queres depois é trabalhar sobre esses linha a linha? Tipo contagem de repetições ao fim de x dias? E depois sair uma lista com a contagem ordenada...?
-
Bom, não será linha a linha porque para ti terá o mesmo valor em qualquer posição do top5 certo?
-
Os pares no top5 já estão a aparecer automatizados certo, o que queres depois é trabalhar sobre esses linha a linha? Tipo contagem de repetições ao fim de x dias? E depois sair uma lista com a contagem ordenada...?
É isso (se for preciso ordenar a contagem global também não é problema, é apenas um sort).
E, sim, não importa se apareceu em 1º, 2º ou em 5º. É só contar as aparições no TOP5.
-
Acho que sei o que queres. Deixa-me fazer aqui um teste.
-
Isso facilita, senão tinhas que atribuir um valor a cada posição do rank.
O que eu penso que dá para fazer é selecionar essa secção e fazer uma formatação condicional, metes várias cores tipo verde quando aparece acima de 20 vezes amarelo acima de 10 etc. E assim visualmente já vês o par que aparece mais vezes...claro que não tens aí uma contagem exacta, mas acho que só queres destacar o que aparece mais vezes...
-
Automek,
vê se ajuda... aviso já que não é uma solução bonita.
-
Esta fórmula será muito útil para construires o ranking diário.
https://exceljet.net/excel-functions/excel-rank-function (https://exceljet.net/excel-functions/excel-rank-function)
-
Obrigado Robusto !
Elegante ou não resolve a questão de forma bastante satisfatória !
(tu fizeste sobre a tabela toda, por isso foi só adaptar para o top 5 e ficou impecável)
-
Já agora, mais uma questão.
É possível fazer um conditional formatting dos valores da tabela em que o critério é:
a) se for superior ao dia anterior (tem de analisar a célula à esquerda), então verde
a) se for inferior, vermelho
Fiz manualmente para se perceber.
-
Mek,
mais uma vez, uma solução completamente "à pedreiro"... a cor do tijolo não importa, enquanto a casa não caia. ;D
Esta foi mesmo à sorte, não sabia se funcionaria ou não.
-
Mek,
mais uma vez, uma solução completamente "à pedreiro"... a cor do tijolo não importa, enquanto a casa não caia. ;D
Esta foi mesmo à sorte, não sabia se funcionaria ou não.
Oh, fdx, isto não devia ser permitido de tão simples que é. ;D
Obrigado Robusto !!
(com isto tudo detectam-se uma série de faltas graves no Excel - vou ver se o Bill Gates precisa de um consultor daqueles que só diz mal dos produtos, eheheh)
-
Ò Robusto, já agora trocamos cromos. Não sabia que o condicional formatting permitia copiar para o lado, actualizando a formula do sitio que usa para analisar, como tu fizeste.
Inspirado por isso encontrei a solução directa, sem ser preciso a tabela auxiliar. É mesmo no condicional formatting comparar a célula onde estamos com a célula do lado (tendo o cuidado de tirar os $ para ele não ir comparar sempre com a mesma). Quando se copia a formatação para o lado, ele vai também actualizar a célula de comparação, à direita ou à esquerda (ou outra), conforme se queira. Muito fixe.
(eu tenho pena de não conhecer nem 5% do que faz o Excel....)
-
Boa!
Dito isto: nunca gostei de formatação condicional. Fico sempre com a impressão que se mexer uma virgula que seja na tabela, estrago logo as outras regras todas. ;D
-
Geralmente o Excel dá para fazer...nós é que não sabemos como :P
-
Excel é o primeiro passo da programação.
E é super completo!
-
Sobre aquela folha de cálculo em que eu queria que ele me desse, em cada dia, quais os pares do TOP5, eu desconfiava que havia de haver uma forma mais directa de fazer isto sem tabelas de apoio. A quem interessar, sobretudo ao Robusto que ajudou bastante, aqui fica.
Eu dividi em três passos, para ser mais claro no print screen, mas claro que isto combina-se tudo na mesma fómula.
Por passos:
1. Função LARGE vai buscar o top1, o top2, top3, etc. (neste caso, dificilmente terei dois valores iguais por isso não me preocupo com esse pormenor)
2. Função MATCH vai ver em que linha (linha da tabela e não linha da spreadsheet) é que está esse top1, o top2, etc.
3. Função INDEX vai ver qual é o par que está na linha obtida pela função MATCH
É tão simples que dói.
(eu confesso que as funções INDEX, MATCH - e também a OFFSET - como foram coisas que apareceram bem mais tarde no Excel, ainda tenho de ir sempre às cábulas ver cada uma delas)
-
o post ficou a meio e apaguei o resto sem querer, mais tarde já publico o resto
-
Bem, há bocado estava noutro PC e neste não funciona. Fiquei a saber que a função UNIQUE, que foi a que usei (e que tornou tudo super simples), só está disponível no Excel 365 (e não neste 2016). PQP.
Mas basicamente com a UNIQUE ele retorna automaticamente uma lista de todos os pares que já ocuparam o TOP5.
Depois um simples COUNTIF resolveu o assunto para saber quantas vezes cada um é que esteve no top5. Hiper simples.
Que pena que a Microsoft não tenha esta função em todos as versões do Excel. Sacana do Gates. :D
-
Muito bom, Automek.
Se te faz sentir melhor: a minha empresa usa a Microsoft para tudo o que é solução corporativa e o nosso excel também ainda não tem a função Unique. :D
Falaste na combinação INDEX + MATCH, acho que também já está na calha uma fórmula nova que junta as duas funções. XLOOKUP, será?
-
UAU! Isso seria top !
-
Quando apareceram as pivot tables para mim foi a maior invenção da história da humanidade. :D
O que isto andou desde essa altura é impressionante.
-
Para mim foi começar a usar macros, para automatizar todos esses passos...
-
Quando trabalhava, e também realizava
alguns trabalhos a título particular
em subcontratação de colegas
em profissão liberal,
programar
macros,
enchia-me de prazer como um sábio,
eficiente, ainda por cima! -:)
E lembrava-me o que diziam certos eruditos
do prazer da literatura clássica grega:
- têm frases, com um potencial
de significação que equivalem
a verdadeiras macros no
cálculo de um modelo!
Uma ou duas frases,
valerem um longo texto,
deve ser um prazer, realmente.
Porque o ideal da ciência é esse:
tudo compreender e explicar,
sucinta e eficaz mente!
-
Para mim foi começar a usar macros, para automatizar todos esses passos...
Macros é top top!
MAs continuo a achar que o excel devia ser mais rápido. É mto lento... e quando começas a puxar a sério, em vez de limitar os cálculos, não... tenta faze lós e da me cabo do i7 e dos 16gb ram...
-
Porque aquilo por princípio recalcula todas as fórmulas incluídas a cada click...a única forma de limitar isso é limpar as desnecessárias.
Mas a velocidade é do computador não do Excel
-
Para mim foi começar a usar macros, para automatizar todos esses passos...
Macros é top top!
MAs continuo a achar que o excel devia ser mais rápido. É mto lento... e quando começas a puxar a sério, em vez de limitar os cálculos, não... tenta faze lós e da me cabo do i7 e dos 16gb ram...
Diga-se que tu és um animal a usar o Excel. Também há limites para os maus tratos que se pode infligir ao software. ;D
Eu já programei em Java mas depois com a falta de prática acabei por esquecer. Aconteceu-me o mesmo com o Python. Andei motivado até conseguir fazer o código para sacar as cotações diárias do Yahoo finance em csv e fazer automaticamente o backadjust de dividendos, mas assim que atingi isso acabei por não fazer mais nada. Ainda tenho o código a trabalhar e uso quando preciso, mas já não me lembro de parte das coisas do Python. Isto da programação exige prática constante.
Uma coisa no excel que pode ajudar é desactivar o calculo automático e só o fazer quando se carrega na tecla de refresh (que é um Fx qualquer - eu há uns anos no trabalho tive um problema desses, com uma folha extremamente complicada, e era assim que fazia, senão aquilo arrastava-se tudo).
-
Eu importo muitos csv files para Excel e tive alguma dificuldade em perceber o power query na última versão.... Mas não há dúvida que aquilo põe te os ficheiros que importas só com com a informação que pretendes num ápice.
-
[ ]
Uma ou duas frases,
valerem um longo texto,
deve ser um prazer, realmente.
[ ]
O mesmo se diga de obras
de alguns pensadores a valerem
uma plêiade de seguidores menores!
-
Para mim foi começar a usar macros, para automatizar todos esses passos...
Macros é top top!
MAs continuo a achar que o excel devia ser mais rápido. É mto lento... e quando começas a puxar a sério, em vez de limitar os cálculos, não... tenta faze lós e da me cabo do i7 e dos 16gb ram...
Diga-se que tu és um animal a usar o Excel. Também há limites para os maus tratos que se pode infligir ao software. ;D
Eu já programei em Java mas depois com a falta de prática acabei por esquecer. Aconteceu-me o mesmo com o Python. Andei motivado até conseguir fazer o código para sacar as cotações diárias do Yahoo finance em csv e fazer automaticamente o backadjust de dividendos, mas assim que atingi isso acabei por não fazer mais nada. Ainda tenho o código a trabalhar e uso quando preciso, mas já não me lembro de parte das coisas do Python. Isto da programação exige prática constante.
Uma coisa no excel que pode ajudar é desactivar o calculo automático e só o fazer quando se carrega na tecla de refresh (que é um Fx qualquer - eu há uns anos no trabalho tive um problema desses, com uma folha extremamente complicada, e era assim que fazia, senão aquilo arrastava-se tudo).
Hum... Nao sei o que é isso. Vou ver. Obrigado pela dica.
-
Atenção que não sou nenhum expert em Excel. Gosto bastante do Excel e das macros. Mas faço tudo com cálculos básicos. É mesmo quase só somar e subtrair! :)
Faço é com muita informação ao mesmo tempo.
-
Hum... Nao sei o que é isso. Vou ver. Obrigado pela dica.
É procurar how to turn off automatic calculation in excel. Dependerá da tua versão.
Ele não actualiza nada até fazeres F9 (refresh).
-
Nenhum Excel dispensa
que se some e subtraia.
Centeno o comprovou;
Victor Bento nem dele
precisou para recusar
o Novo Banco. Mas…
eu queria que vissem
os dois investimentos:
- 3.5 + 1/4.X.(1+r)-t
versus
-4.5 + X.(1+r)-t
ou
1.0 - 3/4.X.(1+r)-t=0
Será Victor Bento
o próximo MF?
-
Ò vbm, tu de vez em quando mandas cada offtopic nos tópicos....
-
no caso vertente,
a culpa foi do melo
que falou em somar
e subtrair!
(o que acho muito bem)
-
Nenhum Excel dispensa
que se some e subtraia.
Centeno o comprovou;
Victor Bento nem dele
precisou para recusar
o Novo Banco. Mas…
eu queria que vissem
os dois investimentos:
- 3.5 + 1/4.X.(1+r)-t
versus
-4.5 + X.(1+r)-t
ou
1.0 - 3/4.X.(1+r)-t=0
Será Victor Bento
o próximo MF?
Damn vbm...
Nao te consigo acompanhar.
Mete mais tabaco. Please.
-
Somar, subtrair
não são a base
de multiplicar
e dividir? Ora,
por muito que
em folha de
cálculo, as
operações
entre as
coisas
se expandam
e multipliquem,
a base será
sempre,
somar e
subtrair.
Centeno e Bento
o confirmam. O
primeiro, para lá
do modelo, cativou
e não gastou. O
segundo nem do
modelo precisou,
viu logo o barrete
enfiado!
-
vbm, eu também meto uma ou outra piada de vez em quando, mas é aborrecido abrir um tópico a pensar que é aguém a precisar de ajuda de Excel ou a dar alguma dica e apanhar com post do Centeno e do Bento que não interessam um carl* para o tópico. Por uma questão de respeito, convinha refrear essas intervenções políticas a tópicos mais próprios para isso. Tens um sub-forum inteiro de política e vários outros tópicos de actualidade económica. É desnecessário vir lixar um tópico de Excel, que é técnico, com isso.
-
Ok! Obrigado, desculpa.
Não repito.
-
Sobre a conversa do DeMelo e do Robusto sobre os dois monitores, deixo uma dica do Excel que não sei se é conhecida por toda a gente. Pode ser que alguém desconheça e vale a pena.
Há a possibilidade de abrir uma nova janela do mesmo ficheiro de excel (ficando, por exemplo, cada janela em monitores diferentes). Isto pode ser útil para quem precisa de verificar formulas distantes umas das outras ou quer visualizar duas zonas diferentes do mesmo ficheiros. Já existia o Split há muitos anos, o que é bom, mas esta funcionalidade para mim é ainda melhor. Não sei quando surgiu, nem em que versão, mas só há um ano ou coisa assim é que a descobri.
Basta ir a View - New Window
https://www.excelcampus.com/tips/new-window/ (https://www.excelcampus.com/tips/new-window/)
Claro que estaremos a trabalhar no mesmo ficheiro, não importa qual a janela que se utilize.
-
Ui... maravilha.
Nao conhecia.
(Como disse, sou muito básico no Excel)
-
Vou experimentar, obrigado.
-
Sub PRNtoPRN()
Dim xWs As Worksheet
Dim xcsvFile As String
For Each xWs In Application.ActiveWorkbook.Worksheets
xWs.Copy
xcsvFile = CurDir & "\" & xWs.Name & ".PRN"
Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, FileFormat:=xlCSV
Application.ActiveWorkbook.Saved = True
Application.ActiveWorkbook.Close
Next
End Sub
Sabem dizer-me como eu consigo gravar os ficheiros resultantes da macro acima para uma diretoria especifica. Atualmente grava na "Current Dir" que pode ser qualquer uma. eu pretendia numa especifica.
-
Consegues. Se for numa pasta predefinida já à partida por ti, podes ir à pasta em questão e copiar/colar o caminho aí. Imagina que queres guardar no desktop seria algo do género
C:\Users\Robusto\Desktop
Assim sendo, na macro o caminho fica:
For Each xWs In Application.ActiveWorkbook.Worksheets
xWs.Copy
xcsvFile = "C:\Users\Robusto\Desktop" & "\" & xWs.Name & ".PRN"
Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, FileFormat:=xlCSV
Ou se quiseres que o caminho seja dinamico, no inicio da formula podes colocar:
Dim CurDir as String
CurDir = Range("A1").Value
Em que a célula A1 tens a primeira parte do caminho.
-
Consegues. Se for numa pasta predefinida já à partida por ti, podes ir à pasta em questão e copiar/colar o caminho aí. Imagina que queres guardar no desktop seria algo do género
C:\Users\Robusto\Desktop
Assim sendo, na macro o caminho fica:
For Each xWs In Application.ActiveWorkbook.Worksheets
xWs.Copy
xcsvFile = "C:\Users\Robusto\Desktop" & "\" & xWs.Name & ".PRN"
Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, FileFormat:=xlCSV
Ou se quiseres que o caminho seja dinamico, no inicio da formula podes colocar:
Dim CurDir as String
CurDir = Range("A1").Value
Em que a célula A1 tens a primeira parte do caminho.
Era mesmo essa dica que precisava. Obrigado.
-
Consegues. Se for numa pasta predefinida já à partida por ti, podes ir à pasta em questão e copiar/colar o caminho aí. Imagina que queres guardar no desktop seria algo do género
C:\Users\Robusto\Desktop
Assim sendo, na macro o caminho fica:
For Each xWs In Application.ActiveWorkbook.Worksheets
xWs.Copy
xcsvFile = "C:\Users\Robusto\Desktop" & "\" & xWs.Name & ".PRN"
Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, FileFormat:=xlCSV
Ou se quiseres que o caminho seja dinamico, no inicio da formula podes colocar:
Dim CurDir as String
CurDir = Range("A1").Value
Em que a célula A1 tens a primeira parte do caminho.
Era mesmo essa dica que precisava. Obrigado.
Já agora, existe alguma forma de adicionar uma linha de código que permita que quando já existe o ficheiro na diretoria ele fazer o overrride?
-
Eu podia jurar que ele faria o overwrite automaticamente, contando que o nome do ficheiro seja o mesmo. Qual o comportamento que te está a ser devolvido? (está a duplicar-te o ficheiro, não grava o ficheiro novo, etc?)
-
Pergunta se quero substituir o que lá está.
-
ok.
Bem, um workaround seria adicionar uma variável que tenhas a certeza que nunca se repete ao nome do ficheiro. Por exemplo, usando a fórmula NOW() ficas com a data do momento até aos segundos. Impossível de repetir nesse cenário. Tens é que substituir os carateres especiais "/" e ":" (que o windows não aceita como nome de ficheiro) por algo como um simples ponto "." (podias substituir por algo em branco, mas no meu teste nao correu bem). Como eu sou maçarico, estou a fazer um replace dentro de outro replace, porque quero substituir duas condições.
Seria algo assim:
xcsvFile = "C:\Users\Robusto\Desktop" & "\" & xWs.Name & "_" & Replace(Replace(Now, ":", "."), "/", ".")) & ".PRN"
Se repetir ficheiros não for realmente uma alternativa, eu estou a pensar num caminho menos convencional, que é colocares uma linha de código (logo no início da macro) em que vais diretamente à pasta e eliminas o ficheiro que tens lá. Como já sabes todas as condições que constituem o nome, é só repetir o mesmo caminho. Depois a fórmula rodaria normalmente, como o ficheiro anterior já foi eliminado, não repeterias nada. Instruções aqui: https://www.wallstreetmojo.com/vba-delete-file/ (https://www.wallstreetmojo.com/vba-delete-file/)
-
experimenta se meter
wbk.Application.DisplayAlerts = False
antes da linha do save resolve a questão
-
ok.
Bem, um workaround seria adicionar uma variável que tenhas a certeza que nunca se repete ao nome do ficheiro. Por exemplo, usando a fórmula NOW() ficas com a data do momento até aos segundos. Impossível de repetir nesse cenário. Tens é que substituir os carateres especiais "/" e ":" (que o windows não aceita como nome de ficheiro) por algo como um simples ponto "." (podias substituir por algo em branco, mas no meu teste nao correu bem). Como eu sou maçarico, estou a fazer um replace dentro de outro replace, porque quero substituir duas condições.
Seria algo assim:
xcsvFile = "C:\Users\Robusto\Desktop" & "\" & xWs.Name & "_" & Replace(Replace(Now, ":", "."), "/", ".")) & ".PRN"
Se repetir ficheiros não for realmente uma alternativa, eu estou a pensar num caminho menos convencional, que é colocares uma linha de código (logo no início da macro) em que vais diretamente à pasta e eliminas o ficheiro que tens lá. Como já sabes todas as condições que constituem o nome, é só repetir o mesmo caminho. Depois a fórmula rodaria normalmente, como o ficheiro anterior já foi eliminado, não repeterias nada. Instruções aqui: https://www.wallstreetmojo.com/vba-delete-file/ (https://www.wallstreetmojo.com/vba-delete-file/)
Esta solução não daria porque preciso que tenha sempre o mesmo nome.
-
experimenta se meter
wbk.Application.DisplayAlerts = False
antes da linha do save resolve a questão
Vou tentar mais logo!
-
Assim? Dá erro.
Sub PRNtoPRN()
Dim xWs As Worksheet
Dim xcsvFile As String
For Each xWs In Application.ActiveWorkbook.Worksheets
xWs.Copy
wbk.Application.DisplayAlerts = False
xcsvFile = "C:\MetaStock Data" & "\" & xWs.Name & ".PRN"
Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, FileFormat:=xlCSV
Application.ActiveWorkbook.Saved = True
Application.ActiveWorkbook.Close
Next
End Sub
-
RS experimenta só
Application.DisplayAlerts = False
se não der desisto.
-
A parte do wbk tem que ser adaptada ao ficheiro que estás a trabalhar. Experimenta algumas variantes:
Workbook.Application.DisplayAlerts = False
ou experimenta colocar diretamente:
Application.DisplayAlerts = False
E acho que tens que colocar essa linha de código, logo a seguir a um dos "Dim". Ou seja, fora do loop do "For Each".
Acho também importante colocares uma linha antes da End Sub a deixar novamente o DisplayAlerts como verdadeiro. Basicamente o que esse codigo está a pedir é para passar por cima dos alertas.
-
Tirado daqui, acho que é isto que precisas fazer:
https://www.teachexcel.com/excel-tutorial/2015/overwrite-an-existing-file-using-vba-in-excel (https://www.teachexcel.com/excel-tutorial/2015/overwrite-an-existing-file-using-vba-in-excel)
Sub Save_File_Overwrite()
' Don't show confirmation window
Application.DisplayAlerts = False
' Save the current workbook as Test.xlsm
' 51 for regular file
' 52 for macro enabled workbook
ThisWorkbook.SaveAs "C:\Directory\Test.xlsm", 52
' Allow confirmation windows to appear as normal
Application.DisplayAlerts = True
End Sub
-
Tirado daqui, acho que é isto que precisas fazer:
https://www.teachexcel.com/excel-tutorial/2015/overwrite-an-existing-file-using-vba-in-excel (https://www.teachexcel.com/excel-tutorial/2015/overwrite-an-existing-file-using-vba-in-excel)
Sub Save_File_Overwrite()
' Don't show confirmation window
Application.DisplayAlerts = False
' Save the current workbook as Test.xlsm
' 51 for regular file
' 52 for macro enabled workbook
ThisWorkbook.SaveAs "C:\Directory\Test.xlsm", 52
' Allow confirmation windows to appear as normal
Application.DisplayAlerts = True
End Sub
Sub PRNtoPRN()
Dim xWs As Worksheet
Dim xcsvFile As String
For Each xWs In Application.ActiveWorkbook.Worksheets
Application.DisplayAlerts = False
xWs.Copy
xcsvFile = "C:\MetaStock Data" & "\" & xWs.Name & ".PRN"
Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, FileFormat:=xlCSV
Application.ActiveWorkbook.Saved = True
Application.ActiveWorkbook.Close
Application.DisplayAlerts = True
Next
End Sub
Nice. Working. Obrigado a ambos.
-
Para mim, tem sido um mistério impenetrável de há anos!
Não consigo perceber porquê e como não consigo
«protect a worksheet» e manter «unprotect one cell»
ou algumas áreas de células desbloqueadas, alteráveis!
É algo lógico e fundamental que ignoro e tenho
sido sempre obrigado a deixar tudo desbloqueado.
-
Talvez usando o Acess. Ficas com uma estrutura em que podes proteger e dados que podes alterar num formulário.
-
Fui ver o que era o Access. Parece-me complicado para o que pretendo.
Trata-se de um cálculo que deve operar um resultado diferente
em parâmetros alterados. É simples, embora perpasse
por diversas variáveis. Eu poderia numa folha não
protegida ligar esses parâmetros
a células próprias. Mas o que
seria incómodo era ter de
partilhar o écran com
essa folha de cálculo
exterior ainda que
miniaturizada.
Vi dito na net que é facílimo descobrir
a palavra-passe de uma folha protegida.
Se assim é, porquê não permitir
células bloqueadas coexistindo
com desbloqueadas!?
Simples mente, não entendo!
-
Hoje em dia há tutoriais para tudo no YouTube. É pesquisar.
-
Hoje em dia há tutoriais para tudo no YouTube. É pesquisar.
Realmente, o q é q não se encontra no riquíssimo YouTube?... :)
-
Hoje em dia há tutoriais para tudo no YouTube. É pesquisar.
lolinho. Prefiro eximir-me.
Num fórum, pergunto.
Não tenho grande
esperança de
compreender
se me explicam.
Mas, às vezes,
pode dar-se
consiga.
De resto, vivo
treinado com
problemas
por resolver.
É um entretém
uma vida com mistérios! -:)