電子書籍の厳選無料作品が豊富!

こんばんは。
下記の画像の通り各macアドレスからの変化点情報をまとめて
それぞれのガントチャートを作成したいと考えております。
csvデータの規則としては、
①変化があるごとに列が1行ずつ増える。(タイムスタンプ、mac、各ステータス情報のフォーマット)
②「0」「1」「2」と本体の状態によってフラグを変更する。

ガントチャートの作成画像はあくまでイメージです。
このようなものを作成できればと考えております。

何か良い方法はございますでしょうか。
エクセルマクロ、フリーのソフトなどお金がかからなければ方法は何でも構いません。
エクセルは、関数などは多少使えるレベルです。
素人質問で申し訳ございませんが、ご教示のほどお願い申し上げます。

「画像のCSVデータをガントチャートにした」の質問画像

A 回答 (1件)

こんにちは



雰囲気の質問なので、回答も雰囲気の回答になりますが・・・

>何か良い方法はございますでしょうか。
良い方法かどうかはわかりませんが、実現できそうな方法として思いつくものをいくつか挙げておきます。

ざっと見たところ、元データのE:F列の値によってチャートの表示色が決まるものと推測しますので、G列等に表示種別(色)の区分を関数式等で算出するようにしておきます。
これにより、A列とG列だけを参照すれば良くなります。
A列は棟時間間隔などではないみたいですが、昇順に並んでいるようなのでそのように仮定します。


質問者様がマクロを使えるのなら、チャートのそれぞれの色部分を矩形の図形等にして、サイズと位置、色をデータに合わせて設定するのが簡単ではないかと思います。
矩形の高さと表示位置のY方向は固定値ですので、元データの色を順に見て行って同じ色が連続している間は一つの矩形と考え、開始時刻、終了時刻を算出すれば矩形のサイズ(幅)が決まります。
表示位置のX方向は開始時刻を換算した位置に矩形をセットすれば良いことになります。
これを、元データのデータがあるだけ繰り返せば作成可能でしょう。

マクロ等が使えない場合は、関数に頼るしかなさそうです。
関数の場合は、チャートの色付けをセルの塗り色として、条件付き書式で着色してゆくのが簡単そうに思います。
見た感じ、チャートの時刻表示の単位が1分か2分程度と思われますので、まずは1列を1分(または2分)として考えます。(1分なら、1時間60列、1日分で1440列ということになります)
そのままいきなり書式等で設定するのは相当に面倒だと思いますので、別シート等に中間データを作成する方法をとるのが楽でしょう。
元データは時間が縦軸でチャートは横軸なので、どこかで変換しなければなりませんが、別シートに移動する際に併せて変換も行ってしまうのが都合が良さそうです。

別シートはチャートに合わせた時間軸とし、1列の時間もチャートと同じ1分(または2分等)としておきます。
各列に対応した色(元データのG列)を計算たいのですが、自セルの時刻を元データのA列からIndexなどで検索して、その結果から計算するような関数式を設定しておけば良いでしょう。
ここまでできれば、チャートは各セルに対応する(別シートの)セルを参照して色を決めれば良いだけのことになりますので、色の数だけ条件付き書式を設定してあげれば実現できると思われます。

まったく別の発想として、エクセルのグラフ機能(横軸の積み上げ棒グラフ)を利用することも考えられます。
この場合は、各色の区切りまでは自動で計算できるので大変便利ですが、色分けの色をG列の指定通りにするうまい方法を残念ながら思いつきません。
マクロ等を使えば設定可能ですが、それならば最初の案でも良いので、わざわざグラフ機能を利用する必要もなさそうですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!