Google Analyticsのプロパティ・ビューをExcelで一覧にまとめる

公開

多数あるGoogle Analyticsのプロパティ・ビューをExcelで一覧にまとめる作業を行ったので、そのメモ。

アカウント情報を取得

Google Analytics Management API (v3)のAccount Summaries: listを利用して、アカウントの情報をJSONで出力する。

Java・PHP・Python・JavaScriptのサンプルコードがあるほか、Try It!でそのまま出力できる。

JSONをCSVに変換

JSON形式を何かに変換して、Excelで開けるようにしたいと考えた。すぐ思いついたのは、JSONをCSVに変換すること。これはConvert JSON to CSVですぐにできる。その際、"webProperties"以外の不必要な情報は削ってコンバーターにかけた。

Macの場合、CSVファイルは文字コードをShift_JISに、改行コードをCR+LFに変換しておく。

CSVをExcelで開いて加工

CSVをExcelで開くと、1行=1プロパティでデータが並んでいる。複数ビューがある場合も1行に収まっている。

これだと見にくいので、ビューが縦に並ぶように加工する。手作業でやると手間なので、VBAを使う。

空行を入れる

ビューの情報を移動して縦に並べるために、まずは空行を入れる準備をする。一番左に列を追加し、次の関数を入力する。空行を何行入れると良いかが算出される。セルの終端(AH6)は適宜変更する。

=COUNTA(G6:AH6)/4 - 1

A列に算出した数値を使って空行を入れるVBAは、『セルの数値分だけ行の挿入』(初心者) エクセル Excel [エクセルの学校]に掲載されている以下のコードを利用させて頂いた。(VBAは久しぶりすぎて忘れた。)

Sub cinsert()
    Dim i As Long
    For i = Cells(Rows.count, 1).End(xlUp).Row To 1 Step -1
        With Cells(i, 1)
            If VarType(.Value) = vbDouble And .Value > 0 Then
                If CLng(.Value) = .Value Then
                    Rows(i + 1 & ":" & i + .Value).Insert Shift:=xlDown
                End If
            End If
        End With
    Next
End Sub

ビューのデータを移動する

各プロパティに必要な空行が空いたので、VBAでビューのデータを移動する。これは次のVBAで実現できる。(これは自分で書いた。)9つのビューに対応している。10以上の場合は修正が必要。

Sub moveData()
    Dim startCells As Variant

    ' ビューのデータの始点となる列(アルファベットは使えないので左から数える)
    startCells = Array(11, 15, 19, 23, 27, 31, 35, 39, 43)
    
    For x = 0 To 8
        For i = Cells(Rows.Count, startCells(x)).End(xlUp).Row To 6 Step -1
            If Cells(i, startCells(x)).Value <> "" Then
                Range(Cells(i, startCells(x)), Cells(i, startCells(x) + 3)).Cut Range(Cells(i + (x + 1), 7), Cells(i + (x + 1), 10))
            End If
        Next
    Next
End Sub