人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excel

あるエクセルファイルの一カラムをコピーし、新しいエクセルファイルに貼り付けます。
そのデータは

2
3
2
3
1

のような感じです。これを2Dの棒グラフにしたいのですが、どうすればいいのでしょうか?
ちなみにX軸は左からデータの小さい順。
Y軸は各値のパーセンテージ。
上のデータの場合は2が2つ、3が2つ、1が1つ。なので、X軸は1,2,3
Y軸は0〜100パーセント

です。

又、PHPのgmtime()で発行されたタイムスタンプを 西暦-月-日 に変更する方法を教えて下さい。

1233456818
●拡大する


●質問者: esecua
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Excel PHP エクセル カラム グラフ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Mook
●26ポイント

マクロを使用した例ですが、新しいシートのA列にデータを置き、下記のマクロを

シート下のシートタブを右クリックして「コードの表示」で選択した部分に貼り付け、

エクセルに戻って Alt+F8で drawGraph を実行し、希望の形にならないでしょうか。

Sub drawGraph()
 Columns("A").Copy Columns("D")
 Columns("D").Sort Header:=xlNo, key1:=Range("D1"), order1:=xlAscending
 
 If Range("D2") = "" Then Exit Sub
 
 For i = Range("D1").End(xlDown).Row To 2 Step -1
 If Cells(i, "D") = Cells(i - 1, "D") Then
 Cells(i, "D") = ""
 End If
 Next
 Columns("D").Sort Header:=xlNo, key1:=Range("D1"), order1:=xlAscending

 Dim lastRow As Long
 lastRow = Range("D1").End(xlDown).Row
 Range("E1").Resize(lastRow, 1).FormulaR1C1 = "=COUNTIF(R1C1:R" & Range("A1").End(xlDown).Row & "C1,RC4)"
 Range("F1").Resize(lastRow, 1).FormulaR1C1 = "=RC[-1]/SUM(R1C4:R" & lastRow & "C4)"
 Range("F1").Resize(lastRow, 1).NumberFormatLocal = "0.0%"


 ActiveSheet.Shapes.AddChart.Select
 ActiveChart.SetSourceData Source:=Range("F1").Resize(lastRow, 1)
 ActiveChart.ChartType = xlColumnClustered
End Sub

PHP の時刻に関しては下記をご参照ください。

http://php.benscom.com/manual/ja/ref.datetime.php

gmdateのサンプル

<?php
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

あたりが参考にならないでしょうか。

◎質問者からの返答

Macなのでマクロは利用できないんです。

>PHP の時刻に関しては下記をご参照ください。

えーっと、タイムスタンプをExcel上で変更する方法です


2 ● ls_10_5
●27ポイント

excelの方はよく分からないので、PHPの方だけお答えします。

gmtime()という関数は私のリファレンスでは見つけ出せなかったのですが、タイムスタンプを取得する関数として考えますと、

date()関数を使うのが良いと思います。

http://www.php.net/manual/ja/function.date.php

date('Y-m-d', gmtime())

といった形式でできると思います。

◎質問者からの返答

サンキューです。


3 ● ls_10_5
●27ポイント

Excelの方も調べてみました。


FREQUENCYという関数が使えるようです。

http://xl-kobeya.seesaa.net/article/16258114.html


A1のセルからA10のセルまで、数値が入力されているものとして説明します。

別の場所、例えばC1のセルからC3のセルまで、1,2,3といった数字を縦に並べて入力しておいて、

D1からD3までのセルを選択し、D1のセルに

=FREQUENCY(A1:A10,C1:C3)

と入力して

Shift+Ctrl+Enter

を押します。

これで、D1からD3のセルに、それぞれの数字が何回出てきたかが表示されます。


これをパーセント表示にするには、E1のセルに

=D1/SUM(D$1:D$3)

と入力して、右下の点をドラッグすることでD1からD3のセルに同じ数式を入力します。


あとはこれをグラフにするだけです。

C1からC3のセルとE1からE3のセルを選択(Ctrlを押しながらだと複数のセルが選択できます)して、グラフウィザードを使ってください。

◎質問者からの返答

参考にさせていただきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ