Colar vínculo e cortar para demarcar forma

Esta técnica pode ser útil para criar dashboards no Excel. É possível copiar um range de células e colar como vínculo – se mudar algo na fonte, a imagem irá atualizar de modo equivalente.

Digamos que quero vincular o range abaixo.

Iniciamos copiando (CTRL+C) a região.

Em Colar -> Colar vínculo da imagem, teremos uma cópia em imagem da região afetada. Só uma imagem retangular é comum demais. Podemos fazer algo mais sofisticado.

Em Formatar -> Cortar -> Cortar para demarcar forma, é possível mudar a forma da imagem. Desse modo, podemos ter uma imagem vinculada à fonte com um formato de shape que ajude a ilustrar as nossas ideias. Vide anexo.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Anúncios

Representação visual da sequência de Fibonacci

Forgotten Math

A sequência de Fibonacci há tempos fascina os matemáticos, por ter uma regra de formação simples, porém com diversas propriedades surpreendentes.

Esta sequência começa com 1 e 1. Os demais números são a soma dos dois anteriores. Portanto, os próximos números são:

2 = 1 + 1
3 = 2 + 1
5 = 3 + 2
8 = 5 + 3
e assim sucessivamente.

Há uma forma bonita de visualizar esta sequência.
Iniciando com um quadrado de lado 1, coloque outro quadrado idêntico do seu lado.

Como o próximo número é a soma desses dois.

E assim sucessivamente.

1, 1, 2, 3, 5, 8, 13, 21, etc…

Com 10 quadrados:

Criei dois programinhas para plotar esta visualização.

Uma em Javascript D3, que é uma biblioteca fantástica para a parte gráfica. Vide projeto interativo no Github, aqui: https://asgunzi.github.io/Fibonacci/

E outra em Excel – VBA, disponível para download aqui. Print…

Ver o post original 97 mais palavras

Macro para atualizar a base de dados da tabela dinâmica

Como atualizar a fonte de dados de uma tabela dinâmica, para que ela leia certinho o número de linhas da fonte?

Uma forma simples de contornar o problema é colocar um range grande para a entrada da tabela dinâmica, digamos 500 mil linhas, e não ter que se preocupar com isto.  A desvantagem é que isto obriga o Excel a ler tais linhas, mesmo que vazias, aumentando o peso do arquivo.

Outra forma proposta é via macro, download aqui um exemplo.

Primeiro, lê quantas linhas têm na coluna A da Planilha 1 e joga na variável “nl”

Sheets(“Plan1”).Activate

‘Lê quantas linhas tem na coluna a, limitado a 100000 linhas

nl = Application.WorksheetFunction.CountA(Range(“a1:a100000”))

Depois atualiza a fonte de dados.

Há uma série de parâmetros aqui, o nome da tabela dinâmica, o range de dados. Uma forma fácil de obter esses parâmetros é gravando uma macro que atualiza a tabela, e depois apenas modificar o campo “SourceData”.

‘Preencher com o nome da tabela dinamica

‘É necessário também mudar a fonte de dados

‘No caso, “Plan1!R1C1:R” & nl & “C3”, está lendo da linha 1 coluna 1 (R1C1) até a linha nl coluna 3

ActiveSheet.PivotTables(“Tabela dinâmica1″).ChangePivotCache ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=”Plan1!R1C1:R” & nl & “C3”,   Version:=xlPivotTableVersion15)


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Formatar células como texto

Um dos problemas mais chatos de abrir um arquivo exportado do SAP, por exemplo, é quando o Excel interpreta um campo que deveria ser texto como número, bagunçando tudo.

O Excel tenta ser inteligente, no sentido de tentar interpretar uma solução e fornecer

Por exemplo, as duas linhas da tabela abaixo são códigos de 6 dígitos, que foram interpretados como número.

Textocomonumero1.JPG

Uma forma simples de fazer com que a formatação de um range seja texto é utilizando a propriedade “numberformat” antes de colar os valores.

Exemplo:


Range("b3:c7").NumberFormat = "@"

Resultado:

Textocomonumero2.JPG

Fica a dica.

Arnaldo Gunzi


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Pequeno experimento com o Dilema do Prisioneiro

Simulador do Dilema do Prisioneiro (Teoria dos Jogos).

Forgotten Lore

O Dilema do prisioneiro é um jogo clássico da Teoria dos Jogos. É um dilema porque, se um oponente escolher trair o outro, o primeiro obtém ganhos locais. Mas, se um confiar no outro e ambos colaborarem, o resultado global é melhor para todo mundo.

Fiz um pequeno simulador baseado neste jogo. É em Excel, disponível para download neste link.
https://drive.google.com/file/d/0B7qV4XXADYw2bzYweWc3YkViOUk/view?usp=sharing

TelaDilema


O jogo

Você está participando de um jogo com as seguintes regras:

– são 12 pontos em jogo, você contra um oponente
– tanto você quanto o oponente têm duas opções: dividir os pontos (cooperar), ou tomar todos os pontos para si.
– caso ambos cooperam, cada um receberá 6 pontos (6 e 6).
– caso um escolha “cooperar” e o outro “tomar”, o primeiro não ganhará pontos, e o segundo ganhará 10 pontos (10 e 0) ou (0 e 10).
– Caso os dois oponentes escolham tomar tudo…

Ver o post original 353 mais palavras

Sudoku

Ferramenta VBA para resolver Sudoku.

Forgotten Lore

O Sudoku é um puzzle em que cada quadrado menor deve ser preenchido com números de 1 a 9, sem repetição. E, cada linha e coluna do quadrado maior tem que ter números de 1 a 9, sem repetição. O desafio é encontrar os números para tal.

Sudoku_1

Achei o Sudoku legal para brincar algumas vezes. Mas o procedimento para encontrar a solução é repetitivo. E tudo o que é repetitivo é possível de ser automatizado. E tudo que pode ser automatizado pode virar uma rotina computacional.

Teve um dia, há muitos anos, em que fiz um resolvedor de Sudokus. Isto dá um bom exercício de VBA.

Sudoku_2.JPG

Basta acionar macros, preencher os campos iniciais, e clicar em “Resolver”.

https://drive.google.com/file/d/0B7qV4XXADYw2aERBRlJoNllTeWs/view?usp=sharing

Fica como presente para os leitores deste blog.

Arnaldo Gunzi

dez 2015

Ver o post original