次のように、日付のみが並べ替えられたExcelブックがあります。
11/14/2011 11:53
10/14/2012 11:53
11/23/2012 19:28
12/24/2012 12:27
...
12/1/2013 11:48
毎月のエントリ数を示す折れ線グラフを作成したいと思います。どうすればこれを取り除くことができますか?
次のように、日付のみが並べ替えられたExcelブックがあります。
11/14/2011 11:53
10/14/2012 11:53
11/23/2012 19:28
12/24/2012 12:27
...
12/1/2013 11:48
毎月のエントリ数を示す折れ線グラフを作成したいと思います。どうすればこれを取り除くことができますか?
回答:
マイクフィッツパトリックの答えは、年に関係なく1か月のすべての値をカウントしようとする場合にうまくいきます。毎月のカウントのグラフを作成する(つまり、2012年11月と2013年11月を区別できる)場合は、もう少し詳細が必要になります。
生データに標準のテーブルを使用することにより、値を追加すると、ピボットチャートはピボットチャートと同様に更新されます。
データが有効なExcel日時であると想定して、範囲にタイトル(例: "Datetime")を付け、ピボットテーブルを作成します。
行ラベルと値として日時(またはそれと呼ばれるもの)を使用します。値関数が合計ではなくカウントであることを確認してください。
最後に、月ごとに、オプションで年ごとに行ラベルをグループ化します。
サンプルデータでは、実際には不規則な時間間隔の比較的長いタイムスパンがあることに気付きました。他の回答ではExcelだけでグラフを作成する方法を指摘しましたが、ここで、私が述べた問題に対処するインタラクティブな折れ線グラフを作成できる別のソリューションを提案します。下の写真は、あなたの説明に基づいて私が作った例を示しています。
このチャートは、Funfun Excelアドインで作成しました。基本的に、このアドインを使用すると、JavaScriptをExcelで直接使用できるため、HighCharts.jsやD3.jsなどのライブラリを使用してインタラクティブなグラフを作成できます。この特定の例では、HighCharts.jsを使用しました。このグラフでは、マウスを使用して特定の期間を拡大し、詳細番号を表示できます。これは、何年もログを保持している場合に非常に役立ちます。
データに戻ります。このグラフを作成する前に、毎月の頻度を数える必要があります。これは、JavaScriptで小さな関数を記述することで実行できます。ここにいくつかのサンプルコードがあります。
var frequencyPerMonth = new Object();
var monthLast = 1;
var yearLast = 1970;
for(var i=0;i<data.length;i++){
var monthThis = parseInt(data[i][0].split('/')[0]-1);
var yearThis = parseInt(data[i][0].split('/')[2]);
if(monthThis == monthLast && yearThis == yearLast){
frequencyPerMonth[data[i][0].split('/')[2]+monthThis.toString()] += 1;
}
else{
frequencyPerMonth[data[i][0].split('/')[2]+monthThis.toString()] = 1;
}
monthLast = monthThis;
yearLast = yearThis;
}
Funfunには、JavaScriptコードと結果を探索できるオンラインエディターもあります。下のリンクで、例のグラフを作成した方法の詳細を確認できます。
https://www.funfun.io/1/#/edit/5a4e0d461010eb73fe125c4e
オンラインエディターで達成した結果に満足したら、上記のURLを使用して結果をExcelに簡単に読み込むことができます。しかしもちろん、最初に、FunfunアドインをExcelにInsert-Office Add-insで追加する必要があります。以下は、サンプルをExcelに読み込む方法を示すスクリーンショットです。
開示:私はFunfunの開発者です