Views

...

Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

E-mails

Deixe seu e-mail para receber atualizações...

eBook Promo

Data Visualization - 01 - PowerPivot and SSAS


A comparação entre o QlikView e Spotfire vs PowerPivot é um pouco injusta e não é culpa de ninguém, antes, parece-me uma necessidade estratégica da Microsoft.

Atualmente a Microsoft não tem um "produto de BI " (como tinham antes na forma da aquisição ProClarity ou da curta duração do PerformancePoint Server) . Em vez de um produto, a Microsoft decidiu (a menos que você concorde com a Microsoft de que o SQL Server , ExcelVisio e SharePoint são " produtos de BI ") dar às pessoas uma razão para atualizarem para o Office 2013, promovendo um sonho brilhante (ou ideia) de BI self-service (percebam que BI é apenas um termo de marketing e inteligência, não é um atributo de qualquer software existente , apesar de propagandistas da AI , BI e outras áreas "XI"), um BI-stack, formado por várias distintas ferramentas (como o Excel 2013 e SSAS - SQL Server Analysis Services) e componentes (alguns brilhantes, como a PowerPivot e alguns servindo apenas como um vírus, como o SharePoint). 

Caso os usuários desejem ter algo baseado na arquitetura da Microsoft BI-stack, comparável com aplicações Qlikview ou Spotfire, precisam de um consultores especialistas. Além disso, a maioria dos clientes precisarão adquirir estas três ferramentas.

PowerPivot é a terceira tentativa da Microsoft de 'comoditizar' o mercado de BI e DV:

A aquisição ProClarity falhou, não houve novos lançamentos desde a versão 6.3;

PerformancePoint Server foi lançado em novembro de 2007, e interrompido dois anos depois.

A atual terceira tentativa está focada em DV (Visualização de Dados) em franca expansão. Os concorrentes com maior são: QliktechTibco Spotfire e Tableau Software.

Em uma tentativa de imitar o sucesso do Qlikview com um banco de dados com armazenamento em colunas na memória, a Microsoft usou o Excel como front-end equivalente aos controles de visualização do QlikView UI. A API back-end estava disponível somente se fosse embalada com o SharePoint e SQL Server (numa tentativa de aumentar as vendas desses produtos), resultando no PowerPivot (do lado cliente ) e VertiPaq / Tabular Mode (armazenamento em colunas na memória) no lado do servidor . Algumas boas palavras sobre PowerPivot e o Excel 2010:

PowerPivot é um excelente banco de dados de armazenamento em colunas na memória, supera a funcionalidade semelhante no QlikView e Spotfire;

PowerPivot também simplificou a funcionalidade disponível a partir do SQL Server Analysis Service, incluindo a funcionalidade antes disponível apenas no Visual Studio e a partir do SQL Server 2012, atualizando o Visual Studio como BIDS (Business Intelligence Development Studio);

Funções de cubo no Excel permitem acesso a todos os valores individuais, os membros e conjuntos dentro de quaisquer cubos SSAS multidimensionais sem usar as tabelas dinâmicas;

Uma nova linguagem DAX pode ser usada transversalmente tanto com a PowerPivot, quanto com SSAS (SQL Server 2012)


Tags: Excel, BI, Qlikview, Sharepoint, Spotfire, DV, Qliktech, Tibco Spotfire, Tableau, PerformancePoint Server, ProClarity, Data Visualization, SharePoint, SQL Server, VertiPaq, Tabular Mode, PowerPivot, SQL Server, Analysis Service, SSAS, BIDS,Business, Intelligence, Development, Studio, 



Inline image 1

Excel Tips - 01 - Glossário do PowerPivot - Termos e conceitos do PowerPivot


Como o Microsoft SQL Server PowerPivot fornece recursos que abrangem muitas áreas tecnológicas, desde bancos de dados relacionais a analíticos, até a publicação na Web, o que segue são termos que podem ser novos ou provenientes de novas áreas tecnológicas.

Termos e conceitos do PowerPivot

Analysis Services
O Analysis Services é um componente do SQL Server que dá suporte a bancos de dados multidimensionais. Também é a tecnologia que fornece armazenamento de dados na memória e processamento de dados PowerPivot no PowerPivot para o Excel.

Connection string
Cadeia de conexão
Informações usadas pelo PowerPivot para se conectar a uma fonte de dados externa.

Cube
Cubo
Um conjunto de dados organizados e resumidos em uma estrutura multidimensional definido por um conjunto de dimensões e medidas.

Data source connection
Conexão de fonte de dados
As informações de conexão que o PowerPivot usa para se conectar a uma fonte de dados.

Foreign Key (FK)
FK (Chave Estrangeira)
A coluna cujos valores correspondem à PK (chave primária) ou chave exclusiva na mesma ou em outra tabela. Para obter mais informações.

Formulas
Fórmulas
O PowerPivot fornece uma nova linguagem de fórmulas, a Data Analysis Expressions, que pode ser usada para manipular dados PowerPivot. Para obter mais informações sobre como trabalhar com fórmula.

Granularity
Granularidade
O grau de especificidade de informações contidas em um elemento de dados. Uma tabela de fato com granularidade fina contém muitos fatos discretos, como transações de vendas individuais. Uma tabela com alta granularidade armazena fatos que são resumos de elementos individuais, como os totais de vendas por dia.

In-memory processing engine
Mecanismo de processamento na memória
O PowerPivot contém um novo módulo de processamento avançado de dados na memória. O mecanismo analítico na memória xVelocity (VertiPaq) permite o processamento rápido de grandes volumes de dados. O alto desempenho é conseguido por meio de novas tecnologias patenteadas para o armazenamento em colunas na memória e a compactação de dados.

PowerPivot data
Dados PowerPivot
Dados que foram adicionados à janela do PowerPivot. Para obter mais informações.

PowerPivot table
Tabela do PowerPivot
Uma planilha (uma guia) no Excel pode conter várias regiões de dados diferentes (ou tabelas diferentes), enquanto uma Tabela (uma guia) no PowerPivot pode conter apenas uma região de dados (uma Tabela). O Excel oferece um 'espaço de trabalho' para os usuários, enquanto as tabelas do PowerPivot contêm apenas os dados que foram importados.

PowerPivot workbook
Pasta de trabalho do PowerPivot
Uma pasta de trabalho do PowerPivot é uma pasta de trabalho do Excel com dados PowerPivot inseridos. Embora o suplemento do PowerPivot inicie uma segunda janela, a pasta de trabalho do PowerPivot é executada no espaço de processo do Excel e não é um aplicativo separado.

Primary Key (PK)
PK (Chave Primária)
Uma coluna que identifica exclusivamente todas as linhas de uma tabela. As chaves primárias não permitem valores nulos. Duas linhas não podem ter o mesmo valor de chave primária; portanto, esse valor sempre identifica exclusivamente uma linha. Mais de uma chave pode identificar exclusivamente as linhas de uma tabela. Para obter mais informações.

Refresh
Atualizar
Atualização, ou atualização de dados, é o processo de consultar a fonte de dados usada em uma pasta de trabalho do PowerPivot e, em seguida, atualizar a pasta de trabalho do PowerPivot com os dados mais recentes.

Relational model
Modelo relacional
Uma relação é uma conexão que você cria entre duas tabelas de dados e que estabelece como os dados das duas tabelas devem ser correlacionados. Ao criar relacionamentos, você pode criar análises sofisticadas facilmente.

Schema
Esquema
Os nomes de tabelas, campos, tipos de dados, e chaves primárias e estrangeiras de um banco de dados. Também conhecido como a estrutura de banco de dados.

Slicer
Segmentação de Dados
Horizontal e vertical
Um recurso que fornece controles de filtragem com um clique, facilitando a restrição da parte de um conjunto de dados que está sendo examinada. Para obter mais informações.

Sparklines
Minigráficos
Um gráfico em miniatura que pode ser inserido no texto ou em uma célula de uma planilha para ilustrar altos, baixos e tendências nos dados.



Tags: Excel,  PowerPivot, SQL Server, Analysis Services, SharePoint, integrated mode, Application server, Configuration database, Content database, Data Feed Library, Data Service Document, Farm, Middle tier, PowerPivot System Service, PowerPivot Web service, SharePoint Web application, Site collection, Web front-end server,



Inline image 1

VBA Excel - Limpando Filtros - Clearing Filters


O código a seguir limpa um filtro em uma tabela ou lista.

Sub ClearFilterListOrTable()
    Dim ACell As Range
    Dim ActiveCellInTable As Boolean

    'Check to see if the worksheet is protected.
    If ActiveSheet.ProtectContents = True Then
        MsgBox "This macro will not work when the worksheet is write-protected.", _
               vbOKOnly, "Clear filter example"
        Exit Sub
    End If

    'Set a reference to the ActiveCell named ACell. You can always use
    'ACell now to point to this cell, no matter where you are in the workbook.
    Set ACell = ActiveCell

    'Test to see if ACell is in a table or list. Note that by using ACell.ListObject, you
    'don't need to know the name of the table to work with it.
    On Error Resume Next
    ActiveCellInTable = (ACell.ListObject.Name <> "")
    On Error GoTo 0

    'If the cell is in a list or table, run the code.
    If ActiveCellInTable = True Then
        'Show all data in the table or list.
        On Error Resume Next
        ActiveSheet.ShowAllData
        On Error GoTo 0
    Else
        MsgBox "Select a cell in your list or table before you run the macro.", _
               vbOKOnly, "Clear filter example"
    End If
End Sub


Tags: Excel, VBA, cell, activecell, table, list, Copying, copy, Table, List, Worksheet, Workbook, clearing filters, filter, clear, cleaning,filtros, tabela, lista, 



Inline image 1

VBA Ecel - Filtrando Tabelas ou Listas - Filtering Tables or Lists


O código a seguir filtra uma tabela ou lista. Para testá-lo usamos uma tabela semelhante à abaixo.



Basta digitar os dados e, em seguida, usar o procedimento descrito.

Sub FilterListOrTableData()
    Dim ACell As Range
    Dim ActiveCellInTable As Boolean
    Dim FilterCriteria As String

    'Check to see if the worksheet is protected.
    If ActiveSheet.ProtectContents = True Then
        MsgBox "This macro will not work when the worksheet is write-protected.", _
               vbOKOnly, "Filter example"
        Exit Sub
    End If

    'Set a reference to the ActiveCell named ACell. You can always use
    'ACell now to point to this cell, no matter where you are in the workbook.
    Set ACell = ActiveCell

    'Test to see if ACell is in a table or list. Note that by using ACell.ListObject, you
    'don't need to know the name of the table to work with it.
    On Error Resume Next
    ActiveCellInTable = (ACell.ListObject.Name <> "")
    On Error GoTo 0

    'If the cell is in a list or table, run the code.
    If ActiveCellInTable = True Then
        'Show all data in the table or list.
        On Error Resume Next
        ActiveSheet.ShowAllData
        On Error GoTo 0

        'This example filters on the first column in the List/Table
        '(change the field if needed). In this case the Table starts
        'in A so Field:=1 is column A, field 2 = column B, ......
        'Use "<>" & filtercriteria if you want to exclude the criteria from the filter.
        FilterCriteria = InputBox("What text do you want to filter on?", _
                                  "Type in the filter item.")
        ACell.ListObject.Range.AutoFilter _
                Field:=1, _
                Criteria1:="=" & FilterCriteria
    Else
        MsgBox "Select a cell in your list or table before you run the macro.", _
               vbOKOnly, "Filter example"
    End If
End Sub




Tags: Excel, VBA, cell, activecell, table, list, Copying, copy, Table, List, Worksheet, Workbook, filter



Inline image 1

VBA Excel - Copiando uma tabela ou lista para uma nova planilha



O procedimento a seguir copia somente as células visíveis numa tabela ou lista para uma nova planilha. Este código usa o objeto ListObject para representar a tabela ou lista. Um detalhe adicional deste procedimento é o de que o número de ocorrências são não-contíguas.

O Excel tem um limite de 8.192 áreas não contíguas que pode ser copiada para qualquer tabela. O código pergunta se deseja criar uma tabela com os novos dados sobre na nova planilha. Se cancelar esta caixa de diálogo, será perguntado se deseja copiar apenas os formatos de modo que o intervalo pareça profissional.

Sub CopyListOrTable2NewWorksheet()
    Dim New_Ws As Worksheet
    Dim ACell As Range
    Dim CCount As Long
    Dim ActiveCellInTable As Boolean
    Dim CopyFormats As Variant
    Dim sheetName As String

    'Verifique se a planilha ou pasta de trabalho está protegida.
    If ActiveWorkbook.ProtectStructure = True Or ActiveSheet.ProtectContents = True Then
        MsgBox "Esta macro não funcionará quando a pasta de trabalho ou planilha estiver protegida contra gravação."
        Exit Sub
    End If

    'Definir uma referência ao ActiveCell. Você sempre pode usar a ACell
    'ponto para esta célula, não importa onde você está na pasta de trabalho.
    Set ACell = ActiveCell

'Teste para ver se ACell está em uma tabela ou lista. Note-se que, usando ACell.ListObject, você
     'Não é necessário saber o nome da tabela para trabalhar com ele.
    On Error Resume Next
    Let ActiveCellInTable = (ACell.ListObject.Name <> "")
    On Error GoTo 0

    'Se a célula está em uma lista ou tabela executar o código.
    If ActiveCellInTable = True Then
        With Application
            Let .ScreenUpdating = False
            Let .EnableEvents = False
        End With

        'Testar se existem mais de 8192 áreas separadas. Excel suporta apenas
        'um máximo de 8.192 áreas não contíguas através de macros VBA e manual.
        On Error Resume Next
        With ACell.ListObject.ListColumns(1).Range
            Let CCount = .SpecialCells(xlCellTypeVisible).Areas(1).Cells.Count
        End With
        On Error GoTo 0

        If CCount = 0 Then
            MsgBox "Há mais de 8192 áreas, de modo que não é possível
copiar os dados visíveis para uma nova planilha. Dica: Classifique os seus dados antes de aplicar o filtro e tente esta macro novamente.", _
                   vbOKOnly, "Copy to new worksheet"
        Else
            'Copy the visible cells.
            ACell.ListObject.Range.Copy

            'Add a new Worksheet.
            Set New_Ws = Worksheets.Add(after:=Sheets(ActiveSheet.Index))

            'Prompt the user for the worksheet name.
            Let sheetName = InputBox("Qual é o nome da nova worksheet?", _
                                 "Name the New Sheet")

            On Error Resume Next
            New_Ws.Name = sheetName
            If Err.Number > 0 Then
                MsgBox "Altere o nome da Aba : " & New_Ws.Name & _
                     " manualmente após a macro está pronta. O nome da sheet" & _
                     " digitada já existe ou você usou caracteres" & _
                     " que não são permitidos."
                Err.Clear
            End If
            On Error GoTo 0

            'Paste the data into the new worksheet.
            With New_Ws.Range("A1")
                .PasteSpecial xlPasteColumnWidths
                .PasteSpecial xlPasteValuesAndNumberFormats
                .Select
                Let Application.CutCopyMode = False
            End With

            'Call the Create List or Table dialog.
            Let Application.ScreenUpdating = True
            Application.CommandBars.FindControl(ID:=7193).Execute
            New_Ws.Range("A1").Select

            Let ActiveCellInTable = False
            On Error Resume Next
            Let ActiveCellInTable = (New_Ws.Range("A1").ListObject.Name <> "")
            On Error GoTo 0

            Let Application.ScreenUpdating = False

            'Se você não criar uma tabela, você tem a opção de copiar os formatos.
            If ActiveCellInTable = False Then
                Application.GoTo ACell
                Let CopyFormats = MsgBox("Você também deseja copiar os formatos?", _
                                     vbOKCancel + vbExclamation, "Copy to new worksheet")
                If CopyFormats = vbOK Then
                    ACell.ListObject.Range.Copy
                    With New_Ws.Range("A1")
                        .PasteSpecial xlPasteFormats
                        Let Application.CutCopyMode = False
                    End With
                End If
            End If
        End If

        'Select the new worksheet if it is not active.
        Application.GoTo New_Ws.Range("A1")

        With Application
            Let .ScreenUpdating = True
            Let .EnableEvents = True
        End With

    Else
        MsgBox "Selecione uma célula na sua lista ou tabela antes de executar a macro.", _
               vbOKOnly, "Copy to new worksheet"
    End If
End Sub


Tags: Excel, VBA, cell, activecell, table, list, Copying, copy, Table, List, Worksheet, Workbook, ListObject




Inline image 1

VBA Excel - Verificando se a célula ativa está em uma tabela ou lista



Muitas vezes antes de executar outros comandos e funções, queremos garantir que a célula ativa esteja em uma tabela ou lista. 

Os seguintes testes de código para essa condição exibe uma caixa de mensagem com os resultados.

Sub ActiveCellIsInTable()
    Dim ActiveCellInTable As Boolean
    Dim ACell As Range

    'Set a reference to the ActiveCell named ACell. You can always use
    'ACell now to point to this cell, no matter where you are in the workbook.
    Set ACell = ActiveCell

    'Test whether ACell is in a table.
    On Error Resume Next
    Let ActiveCellInTable = (ACell.ListObject.Name <> "")
    On Error GoTo 0

    If ActiveCellInTable = True Then
        MsgBox "Esta célula (ActiveCell) é parte da tabela."
    Else
        MsgBox "Esta célula (ActiveCell) não é parte da tabela."
    End If
End Sub

Se a célula ativa estiver numa tabela, podemos usar a seguinte declaração para apontar para a tabela inteira.

ACell.ListObject.Range

Você pode usar a seguinte instrução para fazer referência a uma tabela sem cabeçalho.

ACell.ListObject.DataBodyRange


Tags: Excel, VBA, cell, activecell, table, list




Inline image 1

VBA Excel Série - 03 - VBA ou MACROS

Muitos dizem que o VBA é o controle remoto do Excel. Se isso for verdade, então o que são as Macros ?



Dando atenção a segunda limitação...
Para resolver a segunda limitação das macros baseadas em funções - pois haviam muitos comandos para se gerenciar eficazmente - o VBA foi implementado para trabalhar com um modelo de objetos. O termo modelo de objetos pode soar bastante assustador, mas é realmente apenas uma maneira lógica de organizar todos os comandos que podemos realizar num aplicativo. 

Em um modelo de objetos, cada parte diferente do aplicativo em uma planilha, ou num intervalo ou um ponto em um gráfico - torna-se um objeto. E cada objeto tem sua própria lista de funções. Podemos aprender mais tarde sobre o que um objeto é e como os objetos se relacionam com as funções, mas o ponto é que o modelo de objetos organiza todos os milhões de comandos possíveis em torno de como cada comando é usado, por exemplo, copiar e colar um intervalo de células, mas você não copia e cola pontos em um gráfico.

Devido ao modelo de objetos, o VBA não precisa de nenhum acesso interno especial ao Excel. Em vez disso, o Excel expõe as suas capacidades para o mundo exterior por meio do modelo de objetos e o VBA conversa com este modelo.

Inline image 1

Isto significa que uma macro Excel VBA pode controlar não apenas o Excel, mas também qualquer aplicativo que forneça um modelo de objetos. Todos os aplicativos do Microsoft Office, e vários outros aplicativos da Microsoft e não-Microsoft, oferecem modelos de objetos apropriados.

Inline image 2

O VBA que vem com o Excel não é a única linguagem que pode se comunicar com o modelo de objeto. Qualquer linguagem que suporte automação pode controlar o Excel. Você pode controlar o Excel não só com o VBA hospedado pelo Excel, mas também com o VBA hospedado pelo Word, com o Microsoft Visual Basic versão 6, ou mesmo com uma linguagem como C++. Com uma camada de tradução simples, você também pode falar com o modelo de objeto do Excel da Microsoft. NET aplicações escritas em C# ou Microsoft Visual Basic. NET.

Inline image 3
Tags: Excel, VBA, MS Office, macro, object model, modelo de objetos, C++, C#, DOT NET, 



Inline image 1

eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine