3 pontos por GN⁺ 2023-10-10 | 1 comentários | Compartilhar no WhatsApp
  • Tabela dinâmica é um recurso essencial que transforma planilhas em ferramentas de análise, permitindo resumir rapidamente grandes volumes de dados sem programação nem matemática avançada
  • Pito Salas, da Lotus, idealizou uma ferramenta baseada em cliques para poupar os usuários do incômodo de escrever fórmulas complexas ao criar estatísticas resumidas por categoria e tabelas cruzadas
  • Steve Jobs percebeu o potencial desse recurso enquanto buscava um software matador que gerasse demanda pelos computadores NeXT, o que levou ao desenvolvimento do Lotus Improv
  • As flexible views da equipe da Lotus mais tarde foram incorporadas ao Lotus 1-2-3 e ao Excel, e foi no Excel que o nome pivot table se consolidou
  • Hoje, as tabelas dinâmicas são amplamente usadas no Excel e no Google Sheets, e conseguem condensar dados com centenas de milhares de linhas em um relatório resumido de uma página com apenas alguns cliques

A ferramenta para resumir dados sem fórmulas

  • Tabela dinâmica é um recurso de planilha que permite a usuários comuns analisar rapidamente grandes conjuntos de dados
  • Mesmo sem saber programar ou ter conhecimento avançado de matemática, o usuário pode resumir dados apontando e clicando com o mouse
  • O fundador da Apple, Steve Jobs, também aparece como alguém que reconheceu rapidamente o valor desse recurso

A história de desenvolvimento que levou ao NeXT e ao Lotus Improv

  • Em 1985, depois de não conseguir derrotar a IBM no mercado de computadores corporativos, Jobs foi afastado da presidência do conselho da Apple e logo fundou a NeXT para tentar desafiar a IBM novamente
  • Enquanto preparava o lançamento do computador NeXT em 1988, Jobs procurava um software matador que criasse demanda pelo produto
    • Jobs via no primeiro software de planilha amplamente usado, o VisiCalc, lançado em 1979, um fator central para o grande sucesso do Apple II
  • No processo de encontro com a Lotus, criadora da popular planilha Lotus 1-2-3 para computadores IBM, Jobs teve contato com uma forma inicial da tabela dinâmica
  • Na época, Pito Salas, da P&D da Lotus, observava como as pessoas calculavam estatísticas resumidas por categoria em planilhas, isto é, tabelas cruzadas
    • Uma empresa de venda de bicicletas, por exemplo, poderia querer ver a quantidade vendida por mês ou a receita por país
    • Naquele tempo, era preciso escrever fórmulas complexas manualmente, o que era trabalhoso e propenso a erros
  • Salas concluiu que era necessário um software que produzisse estatísticas resumidas por clique, em vez de exigir a digitação de fórmulas
  • A equipe da Lotus chamou a ferramenta de flexible views, e recursos semelhantes no Microsoft Excel e no Google Sheets hoje são chamados de tabelas dinâmicas

A reação de Jobs e a transformação em produto

  • Quando a equipe da Lotus mostrou o protótipo inicial a Jobs, segundo Salas, Jobs o considerou “a coisa mais legal”
  • Jobs convenceu a Lotus a desenvolver o software de tabela dinâmica exclusivamente para os computadores NeXT
  • O resultado foi o Lotus Improv
    • Embora os computadores NeXT tenham fracassado comercialmente, o Lotus Improv deixou um grande impacto
    • Os elementos de flexible views do Improv mais tarde entraram no Lotus 1-2-3 e no Excel
    • O Excel foi, de fato, o primeiro produto a usar o termo pivot table
  • Bill Jelen, evangelista do Excel e coautor de Pivot Table Data Crunching, considera Salas o “pai da tabela dinâmica”
  • Salas vê sua contribuição para a tabela dinâmica como uma das realizações mais gratificantes de sua vida, mas acredita que foi um resultado construído sobre a base de muitas outras pessoas

Uso no Excel e no Google Sheets

  • Hoje, a tabela dinâmica é um dos recursos mais importantes e mais usados na caixa de ferramentas dos usuários avançados de planilhas
  • Jelen afirma que a tabela dinâmica permite criar um relatório resumido de uma página a partir de dados com centenas de milhares de linhas com apenas 4 a 6 cliques, sendo a forma mais rápida de obter respostas em grandes conjuntos de dados
  • É difícil saber o número exato de usuários cotidianos do Excel, mas a base global de usuários do Excel está na casa das centenas de milhões
  • As tabelas dinâmicas costumam aparecer no topo, ou perto dele, das listas dos recursos mais úteis do Excel
  • Analistas de dados usam tabelas dinâmicas para vários objetivos, como saúde pública, crescimento econômico e análise de eficácia publicitária
  • Justine Shakespeare, gerente sênior de programas da organização sem fins lucrativos de direitos trabalhistas Verité, usa tabelas dinâmicas para analisar dados de pesquisas com entrevistas de trabalhadores migrantes em cadeias globais de suprimentos

Exemplos reais e materiais de aprendizado

  • Um repórter da Quartz precisava de um resumo do total de remessas no primeiro semestre de cada ano a partir de dados mensais de remessas dos EUA para o México desde 1995
  • Os números necessários puderam ser obtidos inserindo uma tabela dinâmica, selecionando os dados necessários e filtrando os meses a excluir
  • Para aprender mais sobre como usar tabelas dinâmicas, é possível assistir ao vídeo do “Excel ninja” Cody Baldwin
  • Usuários do Google Sheets podem consultar a introdução a tabelas dinâmicas do especialista em Sheets Ben Collins

1 comentários

 
GN⁺ 2023-10-10
Comentários do Hacker News
  • Aprendi neste fim de semana que dá para usar a função FILTER para agrupar linhas/células com base no valor de uma célula
    =FILTER(Stories!B2:D13,Stories!F2:F13=A2)
    O primeiro argumento, Stories!B2:D13, é o intervalo de células que contém as histórias, e o segundo argumento, Stories!F2:F13=A2, é a coluna que compara cada célula com o valor de A2. As linhas correspondentes são copiadas para o local onde a fórmula =FILTER foi colocada
    Estou usando isso para organizar automaticamente a lista de histórias por sprint, e é útil para trabalhos como planejamento de incremento de programa
    Outra fórmula útil do Excel que aprendi recentemente é =IF(NOT(ISBLANK(A2)),HYPERLINK("https://jira-instance.atlassian.net/browse/…),"")
    Se A2 não estiver vazio, ela anexa esse valor ao fim da URL e mostra como link um texto com PROJECT- mais o valor de A2. Eu poderia ter feito algo mais elegante com Emacs e org-mode, mas precisava compartilhar com as pessoas responsáveis pelo trabalho, então Excel era a escolha certa

    • Exemplos assim são realmente úteis. A função QUERY do Google Sheets também me ajudou bastante, assim como IMPORTRANGE
      Ajuda a documentar o que foi feito para obter a contagem de linhas
    • Fiquei curioso sobre o que é uma “story” em uma planilha
  • Tabelas dinâmicas baseadas em cubos SSAS talvez sejam a melhor ferramenta de análise self-service que já vi. Por “melhor”, quero dizer pelo critério de quanto usuários reais a utilizam
    A capacidade de fazer usuários de negócio usarem algo imediatamente no ambiente que eles já têm é enorme para a adoção real, especialmente em comparação com algo como Looker. Looker também é uma bagunça por outros motivos
    Além disso, em 9 de cada 10 vezes as pessoas querem adicionar transformações ou cálculos leves aos dados, então nada é tão bom quanto algo que já está dentro do Excel
    O ponto negativo é que o suporte a OSX é praticamente inexistente e escrever MDX é realmente doloroso

    • Concordo, e faço isso com Power BI. Trago os dados para um relatório do Power BI, crio um modelo de dados com medidas calculadas em DAX e publico no serviço online; então o usuário pode clicar em “Analyze in Excel” e baixar uma pasta de trabalho do Excel com uma tabela dinâmica conectada a esse modelo de dados
      Ofereço isso aos PMs do produto pelo qual sou responsável, e eles conseguem responder a muitas perguntas só com tabelas dinâmicas, sem escrever SQL separado
    • Durante meu primeiro estágio, uma empresa usava a combinação cubos OLAP + tabelas dinâmicas, e foi realmente impressionante
      Penso nisso com bastante frequência quando se fala em boas ferramentas de análise na área de dados. Até ferramentas de BI bem evoluídas, como metabase, não lidam com dimensões tão bem quanto tabelas dinâmicas
    • Em meados dos anos 2000, nosso killer app era um aplicativo de exemplo da MSDN Magazine. Era uma página web simples com o Excel embutido, permitindo trabalhar com cubos SSAS por meio de tabelas dinâmicas
      Fizemos um pouco de trabalho web para lidar com permissões e salvar visualizações, mas o desenvolvimento inteiro provavelmente levou menos de uma semana
    • Fiquei curioso se você já experimentou o Easy Data Transform. É uma ferramenta leve de ETL que faz transformações de dados no estilo de tabelas dinâmicas para Excel, CSV e vários formatos de arquivo, e roda nativamente no Windows e no Mac
    • Lembro que o Looker também permitia criar tabelas dinâmicas na interface Explore
      No Looker Explore também dá para baixar como CSV ou Excel; fiquei curioso sobre o que estava faltando ali
  • Tabelas dinâmicas são, na verdade, mais próximas de uma aproximação fraca de uma planilha multidimensional de verdade; por exemplo, havia o Lotus Improv: https://instadeq.com/blog/posts/no-code-history-lotus-improv...

    • Um dos “crimes” do Microsoft Office, exagerando um pouco, foi ter deixado muito pouco espaço para respirar, na área de produtividade de escritório que não é voltada a artistas gráficos, para coisas que não fossem o Office ou imitações quase diretas dele
      O modelo de planilha é um bom exemplo. O Excel talvez seja a melhor coisa do Microsoft Office, mas, como resultado, se você não consegue fazer editoração desktop suficientemente bem no Word, normalmente precisa ir para o InDesign; e, se você não é um profissional de publicação, isso muitas vezes é uma escolha exagerada
    • Eu não sabia que Improv tinha existido. Há ferramentas parecidas com a visão do Improv
      Uso Anaplan todos os dias no trabalho, e uma versão SaaS moderna, baseada em nuvem, do Improv seria exatamente algo assim. Parece que ela virou uma empresa de bilhões de dólares porque não mirou de frente o mercado de planilhas, mas adotou uma abordagem que convive bem com planilhas
      A conclusão do texto sobre o Improv é que o principal erro estratégico foi tentar vender o Improv para o mercado existente de planilhas. Ele diz que, se a Lotus tivesse vendido para um segmento em que um modelo mais estruturado fosse uma ‘funcionalidade’, não um ‘bug’, teria ganhado tempo para aprender, melhorar e refinar o modelo e, depois, satisfazer também um mercado maior; a Anaplan parece não ter cometido esse erro. Ela criou um nicho no mercado de EPM, ou gestão de desempenho empresarial
    • Isso, por si só, também é quase um groupby de pobre
      Em algum momento é preciso admitir que a abstração foi escolhida errado. Dá uma forte sensação de Zalgo
    • Não uso planilhas com frequência desde meados dos anos 1990. Um dos motivos é que eu criei expectativa com o potencial do Improv, mas fiquei decepcionado ao perceber que ele não tinha futuro
      Na época, eu não sabia que tabelas dinâmicas eram outra abordagem para esse conceito
      Outro motivo para abandonar planilhas foi o desempenho. Não lembro quão bom ou ruim o Improv era nesse aspecto, mas os conjuntos de dados com que eu lidava na época não se encaixavam bem em planilhas, então acho que eu não teria continuado a usá-lo
    • Lembro de ter ido ao evento de lançamento do Lotus Improv no Reino Unido quando eu era jornalista iniciante. Chamava bastante atenção como ele parecia sofisticado e profissional em comparação com outros produtos e, olhando em retrospecto, imagino que isso fosse influência de Jobs
      Ainda assim, acho que eles tiveram bastante dificuldade para explicar o que era uma tabela dinâmica e se esse único recurso era motivo suficiente para migrar para um novo aplicativo e uma nova plataforma de hardware
  • No Google Ads, criamos um monte de dashboards com aparência incrível, mas, ao fazer pesquisas com usuários, ficou bem claro que, no fim, o que as pessoas queriam era apenas ver seus próprios dados em tabelas dinâmicas

    • Dashboards bonitos são muito inflexíveis. Não dá para adicionar por conta própria agregações que passem de algo trivial, nem colorir um valor específico que chame a atenção, nem criar ali mesmo um relatório legível com textos explicativos
      Exportação para planilha + tabela dinâmica permite fazer tudo isso. Um profissional de escritório razoavelmente habilidoso consegue fazer sem passar por um loop infinito de backlog-especificação-sprint-desenvolvimento-teste-reespecificação-sprint
    • Era como se os usuários estivessem tentando dizer que aquele dashboard não bastava para responder às perguntas de trabalho que o chefe fazia todos os dias, mas parece que esse sinal não foi captado
      Se não serve para realizar o trabalho, ninguém se importa que pareça bonito. Além disso, beleza é algo muito subjetivo. A equipe estava desperdiçando tempo justamente onde achava que estava agregando valor
    • Trabalhei criando dashboards bonitos e, um dia, os usuários pediram para adicionar “colunas em que fosse possível inserir funções como SUM”
      Pouco depois, saí e fui para a equipe do Google Sheets
  • A Microsoft roubou diretamente a tabela dinâmica da minha antiga empresa, a Brio Technology, e de seu produto DataPivot: https://en.wikipedia.org/wiki/Brio_Technology
    Segundo o CEO, a Microsoft o chamou a Redmond para fazer uma oferta insultuosamente baixa de aquisição da empresa e ameaçou criar seu próprio produto e arruinar a Brio caso ele recusasse. Ele recusou, e depois a MS adicionou tabelas dinâmicas ao Excel
    O texto também menciona a Lotus, que parece ter criado um produto semelhante mais ou menos na mesma época. Os fundadores da Brio também estiveram envolvidos com uma empresa chamada Metaphor, e talvez algumas das ideias tenham se desenvolvido lá
    O produto da Brio vinha com um banco de dados de exemplo contendo o conteúdo da adega do CEO, e foram justamente esses dados que apareceram também nas primeiras caixas do Microsoft Office

    • Algo parecido aconteceu também com a Stac Electronics: https://en.wikipedia.org/wiki/Stac_Electronics
      Só que a Stac tinha uma patente e contratou advogados para processar a Microsoft por violação de patente. A Microsoft também não recuou de bom grado, mas, depois que o tribunal decidiu que ambos os lados precisavam de uma licença para lançar seus produtos, a Stac foi até grandes clientes OEM e lhes ofereceu licenças
      Ou eles licenciavam a patente, ou não poderiam lançar o produto; com os OEMs pressionando a Microsoft, isso levou a um acordo nada ruim para a Stac. Vejo isso como um dos melhores exemplos de como patentes de software podem ajudar a concorrência
    • Fico curioso sobre exatamente qual parte a MS roubou. O próprio conceito de tabela dinâmica, como resumir dados por categorias de linha, existe há muito tempo, então acho que não deve ser isso
    • Fico me perguntando o que teria sido roubado. A tecnologia subjacente, ou o nome pivot table?
      O conceito de agregar colunas de dados categorizados não foi inventado pela Brio Technology
    • Isso também me lembra quando a Microsoft tentou licenciar o CPM para a IBM, mas não era dona dele; então mandou alguém criar um clone e licenciou esse clone para a IBM
    • O Lotus Improv, na verdade, veio antes do produto da Brio. Lembro claramente de quando o Improv saiu; na época, foi um avanço realmente interessante
      Mas acho que o grande problema era ele não fazer parte do Lotus 123. Então, quando o Excel colocou tabelas dinâmicas diretamente dentro da planilha, ficou muito mais útil. Pelo menos para mim
  • Sou engenheiro e também tenho familiaridade com SQL, mas a capacidade de trabalhar rapidamente no Excel e criar tabelas dinâmicas na hora foi uma grande ajuda na minha carreira. Especialmente à medida que fui migrando mais para produto e gestão de negócios
    Tabelas dinâmicas permitem ver muito rapidamente decomposições por várias dimensões e ir mudando a análise para tomar decisões com rapidez. Fora ferramentas existentes para domínios bem definidos, não há muita coisa comparável

    • Tenho a sensação oposta. Eu subo os dados rapidamente para o BigQuery e já começo a fatiá-los
      Consigo disparar consultas SQL muito mais rápido do que clicar no Excel, e a reprodutibilidade também é melhor, porque é mais fácil copiar e colar uma consulta do histórico do que refazer toda a formatação em uma planilha do Excel depois
    • Nunca me aprofundei muito em tabelas dinâmicas. Durante toda a minha carreira, os dados geralmente estiveram em bancos de dados relacionais
      Mas muitas vezes o esforço de levar dados de uma planilha para um banco de dados é excessivo, então acho que, mesmo para engenheiros, usar tabelas dinâmicas não é uma má escolha
  • Uso isso o tempo todo no Pandas. Acabei de dar uma aula relacionada a isso e, depois que você entende a sintaxe, é muito útil
    Ferramentas inteligentes como o DuckDB reconheceram essa utilidade e a dor de fazer isso em SQL comum, e adicionaram PIVOT à implementação. É muito útil

    • Não gosto muito de trabalhar com R, mas as funções de pivot/reformatação do tidyr são difíceis de superar. São muito mais fáceis de usar do que as funções semelhantes em Python
    • Gosto da implementação do dplyr em R. Há pivot_longer e pivot_wider; seria bom ter algo assim também no Postgres
    • Lembro que antigamente havia um plugin para consultar tabelas dinâmicas no Postgres, mas era tão penoso de usar que um método em duas etapas — primeiro consultar os nomes das colunas com código de conexão Python/SQLAlchemy e depois gerar uma segunda consulta com base nesses nomes — era mais fácil e talvez até mais performático
      Espero que a situação tenha melhorado, porque tabelas dinâmicas são realmente úteis
    • Eu gostava da ferramenta visual de consultas do Microsoft Access. Era muito intuitiva, embora talvez um pouco abstrata demais para pessoas comuns
      Ela também gerava SQL, e foi graças a isso que aprendi um pouco de SQL
    • O Oracle também tem PIVOT. Da última vez que usei, era necessário especificar as colunas manualmente
  • Então fico me perguntando o que exatamente é uma tabela dinâmica. Nunca usei nem vi uma, e o vídeo incorporado também não carregou no navegador
    O que aprendi com este texto é que é uma forma fácil de mostrar dados dentro de uma planilha, e que talvez tenha sido inventada na Lotus
    Não tenho a menor ideia do que ela realmente faz nem de como se usa

    • É uma UI de arrastar e soltar para agrupar itens de uma tabela por categoria. Usuários de negócios costumam ter dificuldade para entender, por isso há muitos vídeos curtos no YouTube. Há um exemplo aqui: https://www.youtube.com/watch?v=qu-AK0Hv0b4
      Pessoalmente, acho paradoxalmente muito útil e, ao mesmo tempo, uma bagunça completa
  • Isto provavelmente é mais sobre uma implementação específica do que sobre tabelas dinâmicas em geral, mas, quando se tenta fazer algo um pouco mais avançado, frequentemente dá para sentir que elas ficam devendo
    Para citar alguns pontos: tanto no Excel quanto no Google Sheets, a forma como os “valores” são gerados é muito limitada, de maneiras diferentes
    A forma como filtragem/ordenação funciona em tabelas dinâmicas também não é das mais intuitivas nem flexíveis
    É muito difícil controlar elementos de UI como cabeçalhos e estilos, e muitas vezes você acaba criando uma tabela dinâmica, copiando para outro lugar e ajustando várias coisas manualmente. Aí ela deixa de poder ser atualizada dinamicamente, o que dilui o propósito
    Não sou especialista em planilhas, então talvez eu esteja deixando passar alguma coisa

    • Eu chego bem perto de ser especialista em planilhas, e classificaria tabelas dinâmicas como uma visualização de dados temporária, rápida e suja. Não as uso para apresentações nem em lugares onde o estilo é importante
      Uso principalmente para encontrar rapidamente valores inesperados nas colunas dos dados de origem. Mas, com o surgimento de fórmulas de transbordamento como =unique(), tenho usado cada vez menos até para isso
      Quando as pessoas querem mais coisas de tabelas dinâmicas, em geral acho que elas estão mais perto de pedir o Power Query. A funcionalidade já existe, mas muita gente tem medo dela. Talvez não no HN, mas é assim entre usuários comuns
    • Concordo. As implementações atuais são completamente frágeis e estão longe da maturidade funcional que um usuário experiente ou power user esperaria
      Isso me incomodou tanto que resolvi escrever meu próprio motor de planilhas, e este é um dos pontos de dor que quero corrigir
    • Dá para experimentar esta tabela dinâmica online: https://www.seektable.com
      Você pode alterar a ordem de linhas/colunas apenas clicando nos cabeçalhos, e aplicar filtros especificando, com uma entrada simples, quais itens manter ou excluir
  • Tabelas dinâmicas são definitivamente poderosas, mas o nome não ajuda, e no Excel sempre leva um tempo para lidar direito com a UI
    Gosto da funcionalidade Categories do Numbers no MacOS, porque é muito mais fácil de usar, mas, quando você esbarra nos limites, há restrições bem irritantes
    Hoje em dia, para trabalhos complexos, muitas vezes o mais fácil é exportar a planilha como CSV e rodar consultas SQL com CSVQ