Excel: Copiar somente células visíveis

No Microsoft Excel, quando você tem uma planilha grande e usa recursos de filtros ou de ocultar linhas/colunas para facilitar a visualização, um recurso que deveria ser fácil na verdade fica em uma opção bem “escondida”:

Como copiar somente as células visíveis?

A resposta, que funciona no Excel 2007 em diante, está no artigo de suporte da Microsoft “Copiar apenas células visíveis” e cujos passos reproduzo e ilustro aqui.

O segredo está em primeiro selecionar apenas as células visíveis, com a opção Página Inicial > Localizar e Selecionar > Ir para Especial > Somente células visíveis. Depois copiar e colar.

  1. Selecione inicialmente o conjunto total de células desejadas.
  2. Na aba “Página Inicial” (ou “Início” em versões mais antigas) do menu do Excel, localize o último grupo da faixa de opções, “Editar”.
  3. Selecione a opção “Localizar e Selecionar” e, no menu que se abre, escolha “Ir para Especial”.
    Localizar e Substituir | Ir para Especial
  4. Na caixa de diálogo que se abre, escolha a opção Selecionar “Somente células visíveis” e OK.
    Selecionar | Somente células visíveis
  5. Agora que somente as células visíveis estão efetivamente selecionadas, execute Copiar (atalho de teclado Ctrl + C).
  6. Vá para a célula inicial a partir de onde deseja colocar as células copiadas e execute Colar (Ctrl + V).

Pronto!

Uso da função SE em uma matriz no Excel

A função SE(condição; valor_se_verdadeiro; valor_se_falso) no Microsoft Excel avalia uma condição/expressão no primeiro parâmetro e retorna o segundo parâmetro se o resultado for verdadeiro, ou o terceiro (opcional) se for falso.

É o equivalente à lógica de programação SE condição ENTÃO valor_verdadeiro SENÃO valor_falso.

Mas a função tem usos mais elaborados que se possa imaginar de início.

Ela também pode ser aplicada a matrizes (faixas de células do tipo inicial:final) na condição e nos resultados, avaliando uma expressão em cada célula da matriz na condição e retornando o respectivo valor na matriz do parâmetro verdadeiro ou falso.

Observe o exemplo básico a seguir. Nas células A1 a F1 escrevemos números inteiros (1, 15, 37, 42, 59, 85). Na célula A2, a fórmula =SE(A1:F1>40;A1:F1) faz o seguinte: avalia cada célula de A1 a F1 se o conteúdo é maior que 40; se for, então retorna o respectivo valor da célula; senão retorna FALSO (pois não informamos em SE o terceiro parâmetro caso falso). Como a fórmula em A2 resulta em múltiplos valores, o Excel exibe esse resultado distribuído nas células A2 a F2. Veja a figura.

O artigo Como Encontrar O Valor Mais Próximo Maior Ou Menor Que No Excel, em ExtendOffice, apresenta aplicações desse recurso. Utilizando o resultado do exemplo anterior de SE como parâmetro da função MÍNIMO podemos obter o menor número do conjunto que seja maior que 40. No exemplo ilustrado, a fórmula a seguir retorna 42:

=MÍNIMO(SE(A1:F1>40;A1:F1))

Analogamente, para obter o número mais próximo abaixo de (menor que) 40, a fórmula seria =MÁXIMO(SE(A1:F1<40;A1:F1)) com resultado 37.

Veja também o artigo do suporte Microsoft sobre Diretrizes e exemplos de fórmulas de matriz, para outros exemplos interessantes de fórmulas e funções aplicadas a matrizes de células/valores.

Arredondamento bancário

O arredondamento aritmético como em geral conhecemos, e que é utilizado na fórmula ARRED(Valor;CasaDecimal) de planilhas eletrônicas como Excel e Calc, funciona assim:

Para arredondar um número na N-ésima casa decimal, observamos a casa decimal seguinte. Se for um algarismo entre 0 e 4, apenas mantemos o número até a N-ésima casa decimal e descartamos as seguintes (arredondamento “para baixo”). Se for 5 em diante, aumentamos uma unidade na N-ésima casa decimal, além de descartar as casas decimais seguintes (arredondamento “para cima”).

Assim, para arredondamentos na segunda casa decimal, exemplos:

  • 12,3449 ⇒ 12,34 (4 < 5, para baixo)
  • 12,3472 ⇒ 12,35 (7 ≥ 5, para cima)
  • 12,3456 ⇒ 12,35 (5 ≥ 5, para cima)
  • 12,345 ⇒ 12,35 (5 ≥ 5, para cima)

Porém, conforme bem explicado no artigo “Um novo algoritmo para arredondamento de resultados” [PDF], por Daniel Homrich da Jornada, consultor na área de metrologia e Diretor Técnico da Certificar, o caso exato em que a casa decimal seguinte é 5, seguida apenas de zeros (ou seja, sem valores nas casas decimais após a N+1), arredondar sempre para cima gera um erro sistemático tendendo sempre ao acréscimo.

Esse desequilíbrio pode ser facilmente ilustrado: imagine as situações em que há apenas a casa decimal seguinte; são 10 possibilidades (0 a 9). Quando ela é zero, não há acréscimo nem decréscimo (estatisticamente, 10% das possibilidades); quando é 1, 2, 3 ou 4, são as 4 possibilidades em que há decréscimo (40%); e quando é 5, 6, 7, 8 ou 9, são 5 possibilidades em que há acréscimo (50%). Ou seja, há mais possibilidades de acréscimo do que de decréscimo.

Para equilibrar estatisticamente as possibilidades do arredondamento, há um método comumente denominado “arredondamento bancário” (em inglês, “banker’s rounding”), definido em normas como a ABNT NBR 5891:2014 – Regras de arredondamento na numeração decimal [PDF]; a ISO 80000-1:2009 – Quantidades e unidades — Parte 1: Geral (sucedeu a ISO 31-0:1992), Anexo B – Arredondamento de números, o NIST SP 811:2008 – Guia para o uso de unidades no sistema internacional, Apêndice B.7; a 754-2008 – Padrão IEEE para aritmética de ponto-flutuante, Seção 4.

O “arredondamento bancário” na N-ésima casa decimal pode ser definido em três regras:

  • Quando o algarismo a ser conservado for seguido de algarismo inferior a 5, permanece o número até o algarismo conservado e descartam-se os posteriores (arredonda “para baixo”).
  • Quando o algarismo a ser conservado for seguido de algarismo superior a 5, ou igual a 5 seguido de no mínimo um algarismo diferente de zero, soma-se uma unidade ao algarismo a ser conservado e descartam-se os posteriores (“para cima”).
  • Quando o algarismo a ser conservado for seguido apenas de 5, e todos os posteriores zerados, arredonda-se o algarismo conservado para o par mais próximo, ou seja, se o algarismo a ser conservado for par, apenas descarta-se o 5 posterior (“para baixo”), e se o algarismo a ser preservado for ímpar, soma-se uma unidade ao algarismo a ser conservado, descartando-se o 5 posterior (“para cima”).

Assim, a distinção entre o arredondamento aritmético e o arredondamento bancário ocorre apenas quando posteriormente ao algarismo a ser conservado há exatamente 5 (ou 500…). Enquanto no arredondamento aritmético arredonda-se sempre para cima neste caso, no arredondamento bancário arredonda-se para cima apenas quando o último algarismo a ser conservado é ímpar.

Exemplos deste caso no arredondamento bancário:

  • 12,345 ⇒ 12,34 (4 é par, para baixo)
  • 12,385 ⇒ 12,38 (8 é par, para baixo)
  • 12,315 ⇒ 12,32 (1 é ímpar, para cima)
  • 12,395 ⇒ 12,40 (9 é ímpar, para cima)

Não há até o momento função nativa do Microsoft Excel ou do LibreOffice Calc para esse tipo de arredondamento. O Portal Certificar disponibiliza para download gratuito um suplemento compatível com Excel 2003 e superiores, com a função ArredCertificar(Valor; CasaDecimal) implementada em linguagem VBA (Visual Basic for Applications).

Eu escrevi uma fórmula nativa do Excel/Calc com o mesmo efeito:

=SE(MOD(Valor*10^(Casas+1);20)=5;
TRUNCAR(Valor;Casas);
ARRED(Valor;Casas))

Vamos entendê-la em partes:

  1. Se a parte posterior à casa a ser conservada é exatamente 5 e o último algarismo a ser conservado é par (uma maneira engenhosa de testar as duas coisas ao mesmo tempo é comparar se o resto da divisão inteira desses algarismos por 20 é exatamente 5): SE(MOD(Valor*10^(Casas+1);20)=5);
    1. Arredonda-se para baixo (truncar): TRUNCAR(Valor;Casas)
  2. Caso contrário, segue-se o arredondamento aritmético normal: ARRED(Valor;Casas)

Vi postagens na internet sugerindo outras fórmulas com efeito equivalente. Por exemplo, esta postagem cita a fórmula:

=ARRED(Valor;Casas)-(MOD(Valor*10^(Casas+1);20)=5)/10^(Casas)

A fórmula acima tira proveito de que um teste lógico como MOD(...)=5 vale 1 se VERDADEIRO e 0 se FALSO; quando o algarismo a ser preservado é par, o teste retorna verdadeiro e isso faz subtrair 1 unidade desse algarismo quando o arredondamento aritmético seria para cima.

O “arredondamento bancário” costuma ser aplicado em cálculos financeiros e bancários, medições laboratoriais, aplicações de engenharia e científicas, dentre outras situações. Espero que o conceito e as fórmulas (VBA e nativa) sejam úteis para muitos.

Nota para desenvolvedores: Enquanto as planilhas de cálculo ainda não contemplam essa regra presente em tantas normas internacionais, felizmente há recursos nativos para isso nas principais linguagens de programação, como em Java a opção java.math.RoundingMode HALF_EVEN com números decimais precisos BigDecimal, o DecimalRound do .NET Framework, o decimal.ROUND_HALF_EVEN de Python etc.

Manipulando datas no Excel

O Excel tem uma vasta gama de recursos e funções para cálculos e manipulações com data e hora. Vou citar apenas alguns exemplos relativos a meses, só para ilustrar rapidamente:

  • Quer adicionar uma quantidade de meses a uma data? Tem a função DATAM(cel).
  • Precisa da diferença em meses entre duas datas? DATADIF(cel1; cel2; "m").
  • Quer extrair o número do mês de uma data? MÊS(cel).
  • Qual o último dia do mês correspondente a um data? FIMMÊS(cel; 0) (por exemplo, para 15/2/2020 — ou qualquer outro dia de fevereiro de 2020 — retorna 29/2/2020)

Veja na documentação de suporte da Microsoft a referência completa das 25 funções de data e hora disponíveis no Excel.

O Microsoft Excel armazena datas como números de série sequenciais, para facilitar o uso em cálculos. Um inteiro corresponde a um dia, sendo os horários representados pela parte fracionária. Para ver o número de série de uma data, basta formatar a célula como “Geral”, ao invés de um formato de data.

  • Quer somar 10 dias a uma data? A fórmula simples de adição =cel+10 obtém o resultado.
  • Precisa da diferença em dias entre duas datas? Basta a subtração =cel2-cel1 (a função DATADIF(cel1; cel2; "d") daria o mesmo resultado).

Curiosidade: Por padrão, 1º de janeiro de 1900 é o número de série 1. Isso significa que o Excel tem a limitação de não conseguir representar nativamente datas anteriores ao ano de 1900. Se precisar superar essa limitação, terá que recorrer a programação Visual Basic for Applications (VBA). Ou então, migrar para o software livre LibreOffice Calc, que não tem essa limitação.

O LibreOffice Calc também tem um conjunto de funções para data e hora similar ao Excel.

Referências:

Atualização no plano de releases e suporte do Java

A Oracle está, desde setembro de 2017, realinhando a cadência de lançamentos (releases) e versões do Java SE JDK e das condições de suporte ao produto, em uma transição do Java SE versão 8 até a versão 11.

Na prática, quanto à cadência, os lançamentos de novas funcionalidades (feature releases) serão previstos a cada 6 meses (abril e outubro), com mudança da numeração principal. Essa cadência mais ágil de lançamentos e numeração se alinha a filosofias como DevOps e já é adotada por muitos produtos, como os navegadores Chrome e Mozilla Firefox por exemplo.

E o suporte ao produto terá uma distinção maior entre clientes comerciais (em geral, em ambiente empresarial) — centrados no produto Oracle JDK — e usuários gratuitos (inclusive desenvolvedores individuais) — direcionados ao software livre OpenJDK ou através da distribuição de Java licenciado em produtos de terceiros. Clientes comerciais terão um suporte mais sólido, incluindo lançamentos LTS (long term support) a partir da versão 11, com suporte comercial de longo prazo (pelo menos 8 anos) para aqueles que precisam de versões mais estáveis e duradouras.

Para saber mais:

Ask Toolbar no Java é um absurdo

[Atualizado em 18 de dezembro de 2014.]

Desde a versão 6 do Java, a Oracle começou a oferecer a instalação do software Ask de buscas patrocinadas na internet (ou seja, um adware), durante a instalação do runtime Java. E essa “oferta” insistente e vergonhosa aparece não só na instalação inicial do Java, mas em toda atualização on-line.

A página de ajuda (FAQ) do Java na Internet apenas define vagamente o seguinte:

“A Ask Toolbar é um add-on de browser gratuito que permite fazer pesquisa na Web usando o mecanismo de pesquisa Ask.com diretamente do browser.”

As ferramentas oferecidas para instalação junto com o Java são a Ask Toolbar, uma barra de ferramentas instalada como extensão nos navegadores internet, e a alteração da configuração dos navegadores instalados para que o mecanismo de busca padrão seja da Ask.com. Obviamente são buscas patrocinadas, ou sejam, que levam a resultados muitíssimo piores que os da busca do Google ou mesmo do Bing, e infestados de resultados patrocinados, onde o que mais interessa é gerar rendimento para a Ask, e não apresentar ao usuário resultados relevantes. Ou seja, o tipo de software — em geral indesejado — que é conhecido como adware.

Será realmente que um dos principais mecanismos de runtime de aplicações ricas na Internet como o Java, e uma hiper-mega-corporação global como a Oracle precisem de dinheiro extra pela revenda de patrocínio através da Ask para sustentar a distribuição e disseminação do Java? Será que realmente vale a pena associar o nome de uma empresa sólida como a Oracle e uma plataforma séria e tradicional (desde 1995!) como o Java, a um questionável adware??? Sinceramente, acredito que não!

Existe até uma petição pública (abaixo-assinado) na Internet para que a Oracle pare de distribuir o Ask na instalação do Java: Oracle Corporation: Stop bundling Ask Toolbar with the Java installer.

É fácil evitar a instalação do Ask, bastando desmarcar a opção na tela própria do assistente de instalação do Java as opções que vem marcadas por padrão:

Oferta para instalar o complemento de navegador da Ask

Mas como a maioria dos usuários não presta atenção e às vezes até não entende bem as opções, e simplesmente vai clicando “Avançar” até a conclusão da instalação, muitos acabam tendo instalada a extensão da Ask. Depois podem se assustar quando tentam fazer uma pesquisa na Internet e veem a página de resultados da Ask, sem nem se lembrarem de como isso foi parar ali!

Mesmo depois de instaladas as extensões da Ask, há opção de desinstalar o software pelo Painel de Controle do Windows, mas mais uma vez muitos usuários mais leigos ou desavisados sequer sabem disso ou procuram essa opção.

Lendo uma atualização de 12/12/2014 no site do abaixo-assinado contra o Ask ToolBar, descobri que a partir do Java 7 Update 65 (7u65) e Java 8 Update 11 (8u11) a Oracle passou a disponibilizar, no Painel de Controle Java, guia Avançado, opção que pode ser marcada para Suprimir ofertas de patrocinadores ao atualizar o Java.

Painel de Controle Java, guia Avançado, opção Suprimir ofertas do patrocinador ao instalar ou atualizar o Java.

O FAQ (Respostas a Perguntas Frequentes) da Oracle sobre “Como eu instalo o Java sem ofertas de terceiro patrocinador” ainda apresenta outra alternativa, mais técnica, para evitar a instalação de software patrocinado na instalação é executar o instalador pela linha de comando (Prompt/Console, cmd, ou Iniciar > Executar) acrescentando o parâmetro SPONSORS=0. Segundo o artigo, esta opção já existia antes do Java 7u65 e 8u11, mas não deixa claro desde quando.

Uma entrada no fórum SuperUser, How can I prevent Ask.com Toolbar from being installed every time Java is updated?, ensina que há um jeito de se adicionar entradas no registro do Windows que desabilitam em definitivo as ofertas de patrocinadores durante a instalação de Java: desativa_patrocinio_java.reg

Também quando se baixa a versão off-line do instalador do Java Runtime (JRE), disponível em Java.com e em Oracle TechNet (encontrado a partir da página inicial Java SE Downloads), a oferta de instalação da ferramenta patrocinada Ask não aparece.

Mas, mais uma vez, a maior parte dos usuários comuns não sabe disso e nunca chegará a estas alterativas, infelizmente!

No artigo Soluto’s data raises questions about how Oracle manages Java do blog da empresa Soluto, de soluções para suporte remoto para PCs e iOS, o instalador do Java é responsável por cerca de 40% das instalações indesejadas da Ask Toolbar em seus clientes. Além disso, pelo menos 60% dos clientes da Soluto que tiveram o Ask instalado providenciaram a desinstalação, mostrando o quanto a ferramenta é indesejada. E a empresa acredita que a maior parte dos que ainda não desinstalaram a Ask Toolbar têm a intenção de fazê-lo.

Se você é usuário do Java, recomendo evitar a instalação da Ask Toolbar ou desinstalar se você também acha um software indesejado. Se você é um representante da Oracle, por favor leve nosso protesto a quem de direito para retirar esse maldito e vergonhoso patrocínio de uma vez por todas!

Para saber mais:

Certificações em teste e qualidade de software

Ao fazer um levantamento sobre certificações disponíveis no mercado para atestar os conhecimentos teóricos de profissionais de teste e garantia da qualidade de software, descobri que existem mais de 20 certificações de pelo menos sete instituições certificadoras no mundo! Isso sem falar nas certificações em ferramentas e produtos específicos para teste de software (IBM, Borland etc.).

Cada instituição costuma dividir seu caminho de certificações em níveis, que podem estar entre os quatro seguintes: Fundamental, Profissional ou Avançado, Especialista, Gerencial.

Cada instituição certificadora propõe um corpo de conhecimento (body of knowledge – BOK) em teste de software, com a ementa de referência (syllabus) de cada certificação e, em geral, provê também um glossário sistematizado de termos.

Obviamente, como estão todos abordando a mesma disciplina de teste de software, existem muitas similaridades, mas há bastante variação de tópicos e abordagens.

As entidades certificadoras mais populares no Brasil parecem ser a International Software Testing Qualifications Board (ISTQB) de origem européia, através de seu braço nacional Brazilian Software Testing Qualifications Board (BSTQB); a Associação Latino Americana de Teste de Software (ALATS); e o Quality Assurance Global Institute (QAI), de origem americana.

O quadro resumo das certificações e detalhamento das informações está na seção Teste e Garantia da Qualidade de Software da página Hyperlink: Qualidade do Produto, Métricas e Teste de Software.

Mas são tantas siglas de instituições e certificações que você pode se confundir facilmente com essa sopa de letrinhas. Nesse caso, a variedade e diversidade mais complica do que ajuda. Seria muito bom se surgisse um esforço internacional de unificação ou consolidação destas ementas de referência…

Artigo sobre criar PDFs atualizado

Atualizei hoje o artigo PDF Livre com (ou sem) o Ghostscript, com a revisão 24.

Nos últimos 30 dias, cinco das seis impressoras PDF gratuitas avaliadas disponibilizaram atualizações. Só ficou de fora o FreePDF, cuja última atualização foi em agosto de 2011. Até o CutePDF Writer, que não lançava atualização desde a versão 2.8 em agosto de 2009, distribuiu agora a atualização 3.0 compatível com Windows 8 e com suporte a GPL Ghostscript tanto 32 quanto 64 bits.

De ruim, a expansão da oferta de produtos patrocinados (adware) nos instaladores. Nesta atualização, o CutePDF Writer passou a oferecer a instalação da ASK Toolbar, e o PDFCreator passou a oferecer não apenas um, mas a instalação de dois adwares.

O link sobre o uso da biblioteca adware OpenCandy no PrimoPDF ficou inválido. Não pude afirmar se este software ainda usa ou não a biblioteca, mas por via das dúvidas, deixei o aviso anterior sobre possível adware incluso. A propósito, vi no rodapé da página do PrimoPDF o discreto link PrimoPDF Source, onde pode-se baixar um ZIP com todo o projeto de fontes VisualBasic do utilitário; por isso, alterei seu tipo de licenciamento de freeware para código aberto.

Aproveitei para corrigir links desatualizados que estavam referenciados no artigo.

Relatórios de mercado – Produtos de TI 2011/2012

Coleta atualizada de análsies de mercado de produtos de TI por institutos de pesquisa, desde a postagem de meu artigo do ano passado.

Infraestrutura de Aplicações

Desde 2010, o mercado de servidores de aplicação corporativos está estável, com os líderes Oracle, IBM, Microsoft e Red Hat (JBoss). Nessa atualização em 2011, a Red Hat encosta cada vez mais nos outros três líderes. O quadrante mágico também foi “enxugado” da profusão de concorrentes de nicho e visionários que haviam em 2010.

Quadrante Mágico Gartner - Servidores de Aplicação Corporativos, 2011
Quadrante Mágico Gartner - Servidores de Aplicação Corporativos, 2011

Fonte: Magic Quadrant for Enterprise Application Servers, setembro 2011, Gartner, reproduzido por Oracle.

Quadrante Mágico Gartner - Governança SOA, 2011
Quadrante Mágico Gartner - Governança SOA, 2011

Fonte: Magic Quadrant for SOA Governance, outubro 2011, Gartner, reproduzido por Oracle.

ESB Forrester Wave Q2 2011
Mercado de Enterprise Service Bus, 2º trimestre de 2011, Forrester Wave, Forrester Research.

Fonte: The Forrester Wave: Enterprise Service Bus, Q2 2011, por Ken Vollmer para profissionais de desenvolvimento e distribuição de aplicações, 25 de abril de 2011, reproduzido por Oracle.

ESB Reference Architecture Model
Enterprise Service Bus reference architecture model, Forrester Research, 2011.

Quadrante Mágico Gartner - Application Performance Monitoring, 2011
Quadrante Mágico Gartner - Application Performance Monitoring, 2011

Fonte: Magic Quadrant for Application Performance Monitoring, setembro 2011, Gartner, reproduzido por Quest Software, por CA, por Opnet.

Gerenciamento de Conteúdo

O cenário não mudou muito desde as análises dos institutos Forrester e Gartner no quarto trimestre de 2009 e do Gartner em novembro de 2010. Comparando os resultados dos dois institutos agora no final de 2011, vemos que ambos concordam na indicação de cinco líderes de mercado EMC, Oracle, IBM, OpenText e Microsoft. O excelente posicionamento de IBM e Oracle é similar nos dois gráficos; a diferença fica por conta do Forrester colocar OpenText e EMC em uma situação mais proeminente, e Microsoft no limiar inferior da liderança.

Forrester Wave - ECM, 4º trimestre 2011
Forrester Wave - ECM, 4º trimestre 2011

Fonte: The Forrester Wave – Enterprise Content Management, Q4 2011, novembro 2011, Forrester, reproduzido por Oracle.

O relatório Forrester Wave 2011 Q4 traz uma interessante figura que sintetiza os tipos de conteúdo e tecnologias relacionadas em gerenciamento de conteúdo corporativo (ECM):

Forrester Wave ECM 2011 Q4: Tipos de conteúdo e tecnologias
Forrester Wave ECM 2011 Q4: Tipos de conteúdo e tecnologias

O relatório completo também traz três gráficos de ondas adicionais segmentados por tipo de conteúdo: Fundamental, Negócios e Transacional.

Quadrante Mágico Gartner - ECM, 2011
Quadrante Mágico Gartner - ECM, 2011

Fonte: Magic Quadrant for Enterprise Content Management, outubro 2011, Gartner, reproduzido por Oracle.

O segmento específico de gerenciamento de conteúdo web mantém-se estável se comparado com as análises do Gartner em agosto de 2009 e em agosto de 2010. Oracle, OpenText, Autonomy, SDL e Sitecore se mantêm na liderança. Agora em novembro de 2011, surge a Adobe entre os líderes. IBM e Microsoft continuam fortes desafiantes nesse segmento.

Quadrante Mágico Gartner - Web CMS, 2011
Quadrante Mágico Gartner - Web CMS, 2011

Fonte: Magic Quadrant for Web Content Management, novembro 2011, Gartner, reproduzido por Oracle.

Quadrante Mágico Gartner - Portais Horizontais, 2011
Quadrante Mágico Gartner - Portais Horizontais, 2011

Fonte: Magic Quadrant for Horizontal Portals, outubro 2011, Gartner, reproduzido por Oracle.

Análise e Inteligência de Negócios, Armazém e Integração de Dados

O quadrante a seguir foca o segmento de ferramentas analíticas de negócios (business analytics) denominado Gestão do Desempenho Corporativo – Enterprise Performance Management (EPM) ou Corporate Performance Management (CPM).

Magic Quadrant for Corporate Performance Management Suites, March 2012
Quadrante Mágico Gartner – Suítes de Gestão de Desempenho Corporativo, 2012

Fonte: Magic Quadrant for Corporate Performance Management Suites, 19 de março 2012, Gartner, reproduzidor por Oracle.

Quadrante Mágico Gartner - Business Intelligence Platforms, 2012
Quadrante Mágico Gartner - Business Intelligence, 2012

Fonte: Magic Quadrant for Business Intelligence Platforms, fevereiro 2012, Gartner, reproduzido por Microstrategy, por Oracle, por Microsoft, por LogiXML, por Tableau.

Quadrante Mágico Gartner - Ferramentas de Qualidade de Dados, 2011
Quadrante Mágico Gartner - Qualidade de Dados, 2011

Fonte: Magic Quadrant for Data Quality Tools, julho 2011, Gartner, reproduzido por SAP [PDF], por Autonomic Resources.

Quadrante Mágico Gartner - Integração de Dados, 2011
Quadrante Mágico Gartner - Integração de Dados, 2011

Fonte: Magic Quadrant for Data Integration Tools, outubro 2011, Gartner, reproduzido por Oracle.

Quadrante Mágico Gartner - SGBD Armazém de Dados, 2012
Quadrante Mágico Gartner - SGBD Armazém de Dados, 2012

Fonte: Magic Quadrant for Data Warehouse Database Management Systems, fevereiro 2012, Gartner, reproduzido por Oracle.

Planilha eletrônica em finanças: centavos × frações

Um erro bastante comum que vejo no uso de planilhas eletrônicas em cálculos financeiros e monetários é o tratamento incorreto de centavos na divisão não-inteira e cálculos com números fracionários com mais de duas casas decimais. Nesse artigo vou abordar o problema e soluções para tratá-lo adequadamente.

Problema: Formatação exibida × valor armazenado

Quando se trabalha com valores monetários (financeiros), é comum usar a formatação de número das células como “Moeda”, “Contábil” ou ainda “Número”, com duas casas decimais. Isso faz a planilha eletrônica exibir os valores sempre arredondados em duas casas decimais, para representar adequadamente os centavos.

Por padrão, essa precisão de casas decimais da formatação é usada apenas na exibição, mas o armazenamento e cálculos do valor usam toda a precisão que a planilha comporta (o Excel 2010, por exemplo, tem precisão máxima de 15 dígitos).

Se o valor da célula tem parte fracionária com mais de duas casas decimais — um caso típico é o resultado de uma divisão não inteira — mas apenas a exibição é formatada com duas casas decimais (para os centavos), isso pode resultar em divergências de arredondamento de centavos, quando esse valor é usado em cálculos.

Veja o exemplo, células das colunas B e C formatadas como moeda (duas casas decimais):

A B C
1 n v n*v
2 3 R$ 0,33 R$ 1,00
3 3 R$ 0,67 R$ 2,00
4 3 R$ 0,33 R$ 0,99
5 3 R$ 0,67 R$ 2,01

Por que aparentemente os cálculos nas linhas 2 e 3 são iguais aos das linhas 4 e 5, mas os valores resultantes da multiplicação (coluna C) são diferentes? Porque os valores armazenados nas células B2 e B3 são as fórmulas =1/3 (0,333333333333333) e =1/4 (0,666666666666667) respectivamente, enquanto nas células B4 e B5 são efetivamente 0,33 e 0,67.

Solução 1: Precisão de cálculo igual à exibição

Uma solução, fácil de aplicar mas que deve ser usada com muito cuidado, porque afeta globalmente a planilha eletrônica e faz com que valores digitados percam definitivamente a precisão de casas decimais excedentes, é utilizar uma opção do Excel que faz com que a precisão de cálculo seja igual ao exibido.

No Excel 2010:

  1. Clique na guia Arquivo, clique em Opções e, em seguida, clique na categoria Avançado.
  2. Na seção Ao calcular esta pasta de trabalho, selecione a pasta de trabalho desejada e, em seguida, marque a caixa de seleção Definir precisão conforme exibido.
  3. Selecione OK.

Observe que o Excel alerta que dados (digitados) perderão definitivamente a precisão (casas decimais excedentes ao exibido). Isso significa que se houvesse um valor digitado e armazenado como 0,666667 na célula formatada como 2 casas decimais, após ativada a opção o valor seria definitivamente convertido para 0,670000. Isso não afeta porém valores que são fórmulas como =2/3.

Referência: Ajuda do Excel 2010 – Alterar a precisão dos cálculos em uma pasta de trabalho.

Solução 2: Utilizar fórmulas de arredondamento

Outra forma de evitar/solucionar essa divergência é utilizar nas células fórmulas que explicitamente arredondem ou trunquem os valores armazenados para duas casas decimais. Existem várias fórmulas para isso. Peguemos o exemplo de tratar a fração a/b (por exemplo, 1/3 ou 2/3):

  • =ARRED(a/b;2) → Arredonda um número (primeiro parâmetro) até a quantidade especificada de dígitos (segundo parâmetro, no caso, 2 casas decimais). A regra de arredondamento é a comum: valor 5 em diante na casa decimal seguinte arredonda para cima, 0 a 4 para baixo (trunca).
  • =ARREDONDAR.PARA.CIMA(a/b;2) → Sempre arredonda um número para cima afastando-o de zero. Ou seja, “para cima” é aumentar o valor absoluto; no caso de valores negativos, -0,333 resulta em -0,34.
  • =TETO(a/b;0,01) → Arredonda um número sempre para cima, para o próximo múltiplo significativo (do segundo parâmetro, no caso, 0,01 = 1 centavo). Para números positivos, funciona igual a ARREDONDAR.PARA.CIMA.
  • TRUNCAR(a/b;2) → Trunca um número até a quantidade de casas decimais especificadas no segundo parâmetro (no caso, 2; se omitido assumiria o padrão 0, para truncar para inteiro).
  • =ARREDONDAR.PARA.BAIXO(a/b;2) → Arredonda um número para baixo, aproximando-o de zero.
  • =ARREDMULTB(a/b;0,01) → Arredonda um número para baixo até o múltiplo ou a significância mais próxima (segundo parâmetro, no caso, 0,01) É a função oposta a TETO.

Os mais comuns são arredondar (ARRED) ou truncar (TRUNCAR).

Referência: Ajuda do Excel 2010 – Arredondar um número.