次のように、日付のみの(並べ替えられた)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")を付け、ピボットテーブルを作成します。
行ラベルとして日時(またはそれと呼ばれるもの)を使用しますand値。値関数が合計ではなくカウントであることを確認してください。
最後に、月ごとに、オプションで年ごとに行ラベルをグループ化します。
サンプルデータで実際に不定期な時間間隔の比較的長いタイムスパンがあることに気付きました。他の回答では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アドインを挿入-OfficeアドインでExcelに追加する必要があります。以下は、サンプルをExcelに読み込む方法を示すスクリーンショットです。
開示:私はFunfunの開発者です