FC2ブログ

グラフの作り方 002

202006300003.png

 ごく普通の 集合縦棒グラフ です

 ごく普通なのですが、前回作成した状態から
 この完成形まで、編集するには、いろいろなことを知らないと出来ません
 これは、資格試験の場合 初歩の入門編に当たります

  202006300005.png

グラフの作成直後は、
 グラフのタイトルが入力されていなかったり
 グラフ内の各部品も 最小限のものしかありません
 ※ 凡例だけ?

今回は、主な部品の名前を この完成形の画像から

グラフの中で、最も選択する回数が多いと言っても過言ではないもの
それは、「グラフエリア」
 202006300006.png

 グラフ内の
 文字などが何も無いところだったらどこでもいいのでマウスポインタを合わせると
 「グラフエリア」 という名前が 表示されます

おっと その前に グラフには、2つの状態があります
グラフが、選択されている状態と 選択されていない状態
グラフの周りの線を見ればわかりますし
グラフが選択されている場合には
グラフ専用のタブが,3つ表示されます
 ・ [描画ツール]タブ
 ・ [テキストツール]タブ
 ・ [グラフツール]タブ
  202006300007.png

グラフを選択すると 周りに表示されます
 202006300010.png


部品の中で一番覚えやすい 「グラフタイトル

文字通り グラフのタイトル
 これが何を表すグラフなのか を 表す

 WPS Office Spreadsheets の場合
 自動的に
     「グラフタイトル」 と 表示される
 その文字を編集するだけ

 クリックし、「グラフタイトル」を 選択する
 202006300011.png

 「グラフタイトル」 が 選択されたら
 部品を選択したときには、その周囲がポッチで囲まれます

 202006300012.png

 「グラフタイトル」内へ マウスを移動すると 形が I 状になる

   202006300013.png

 その時に クリックすると文字内にカーソルが入り 文字を編集できる

   202006300014.png

 元々入っている「グラフタイトル」を [Delete]または[BackSpace]キーで削除
 好みの内容を入力する
 202006300015.png

 ※ フォントやフォントサイズを変更したい場合は
   先に 設定してから入力するか
   入力した文字列を選択し [テキストツール]タブで、変更
   [ホーム]タブでも可能

 202006300016.png
  
スポンサーサイト



グラフの作り方 001

グラフの作り方を覚えるなら、
初めに縦棒グラフと円グラフの作り方を押さえてしまうと、
だいたいのグラフが作れるようになります!
と あるサイトに書かれていました
もちろん Microsoft Office Excel の場合ですが
ポイントは、同じです

ほとんどの人は、
この WPS Office Spreadsheets を
Excel の代用品として、使っているのでしょうから

グラフ作成 初めの一歩
縦棒グラフの作り方で、グラフ作成の基本を

元データ
 202006290002.png

 この表を 元に 縦棒グラフ を作成する

 グラフを作るためには、
  そのグラフの 基となるデータ必要
 データ無しで、
  グラフだけを 単体で作ることは できません


 そして、
 手元にあるデータのうち、
 どの部分のデータ を 使って
 グラフを作りたいのか?

 範囲選択するのですが、
  この時、グラフの完成形 を イメージしながら 範囲選択 する


 今回は、下図のように、
  お客様の年代別 の、「浴室」 と 「トイレ」 の 受注数 を グラフ化する

 202006290001.png

グラフの「棒」の部分となる
 実際の数字は もちろん
 「浴室」「トイレ」というリフォーム場所の名前
 そして
 「30代」「40代」「50代」といった年代も
 グラフに表示したいわけですから
 表内の数字だけでなく
 表の 項目名 も 含めて範囲選択する必要がある


 202006290003.png

 この範囲選択したセルの中で
 一つだけ 使用しないセルが、含まれています
 それは、A3 セルの「お客様年代」
 しかし、このセルは、使用しないのですが
 このセル範囲の選択こそが、
  グラフ作成にとって 重要な意味を持つ
 グラフの元となるデータは、
長方形になるように 範囲選択する


 グラフに 必要なデータを 選択しつつ、
 しかも
 その選択した範囲が 長方形になるよう 範囲選択するためには
 A3 セルも含めて 選択する必要がある


 これは、今回のように、1つの表になっていない データの場合
 覚えておけば、役に立つ
 よくある困った元データ例としては
 項目名が、入力されているセルが結合されているケース
 ※ セル結合を解除して 選択するなどの工夫が必要かもしれない
   実際には、そのデータを見ないと何とも言えない

 データ範囲を選択したら
 [挿入]タブ
 自分が作りたい種類のグラフを クリックする

 202006290004.png

 Microsoft Office Excel との 大きな違い
3-D タイプのグラフは、出来ません


縦棒グラフで、選択できるのは
 ・ 集合縦棒
 ・ 積み上げ縦棒
 ・ 100%積み上げ縦棒
だけです

 集合縦棒グラフ というのは、
  グラフの各「棒」が横に並んでいる
  一般的に よく見るグラフ
  今回の例では、「浴室」の棒、「トイレ」の棒が 横に並んでいます

 積み上げ縦棒グラフ というのは
  グラフの各「棒」が横に並ぶのではなく、上に積み上がるグラフ

  202006300001.png

  今回の例では、「浴室」の棒の上に、「トイレ」の棒が 積み上がっています

 202006290005.png

 100%積み上げ縦棒グラフ は、
  各「棒」を 割合のパーセンテージに 換算して表示する

  202006300002.png

  今回の例では、各年代のリフォームのうち
   「浴 室」の割合は これ位
   「トイレ」の割合は これ位
  という グラフになっています

 202006290006.png

 
今回は集合縦棒グラフを作りたいので、[集合縦棒]ボタンをクリック

 202006290007.png


 集合縦棒グラフを作ることができました!

 グラフを「作る」工程は ここまで

あとは
 「グラフタイトル」の部分を入力したり
 目盛や色を いじったりなど
 自分好みに 見栄えを整えていきたい

 ところですが、
 それよりも 前に、
 グラフ自体の大きさや位置を整えておくと、効率が良い

 そして
 グラフは たくさんの部品に分かれています
 各部の選択の仕方を 知らないと
これから先の操作は 何にもできません!


つづく 

少し、面白い問題 重複しないランダムな値

問題文

 画像のような配置図

 201905311010.png

 薄い緑色で塗りつぶされたセルに、名前を表示させる
 その名前は、以下のように五十音順に入力されている
 ※ K列に、通し番号 L列に、「名前」 セル範囲は、K14:L53

  201905311011.png

条件 1

 A1 が、空欄の場合は、
  B3 から順番に、H12まで、あいうえお順


  201905311012.png

条件 2

 A1 に、何か入力されたら、
  ランダムな名前を 入力する


  ここで必要なことは、ランダムで、なおかつ、重複しないもの
  名前= L13:L53 を、ランダムに、重複しないように選択する
  そのために、隣のセルにRAND 関数を入力する
  RAND 関数
   0 以上で 1 より 小さい実数の乱数を 返します

  201905311013.png

  さらに、N 列に、今入力した関数で表示される乱数に順位を付ける
  N14 へ、入力する関数は、順位を求める RANK 関数
  =RANK(M14,$M$14:$M$53)

  201905311014.png

  この関数で、求められた数値は、
  「名前」を 「 1 」 から 「 40 」 の 数値で 区別した

あとは、
 どうやって「名前」を求めるか?

最初の「条件 1」の場合は
 セル B3 に入力する数式は、「 =L14 」
なので、
「A1 セルが、空欄の場合」 これは、 I F 関数を使用する
 =IF($A$1="",L14,

  これから、「名前」を 表示するには、L14~L53 を 求めればよい
  それに、ランダムの数値を参照する
  N列で、求めたのは、 1~40 なので、
  N 列の数値 足す 「13」のL列のセル番地
  セル参照を文字列で表示できる関数
  INDIRECT 関数を 使用する
  =INDIRECT("L"&N14+13) 
  この数式を 入力した場合、表示されるのは
  N14 セルに、表示されるランダムな(1-40)の数値足す「13」
  L列の L14~L53のセルのいずれかの「名前」

結 局
  
  B3 セルに入力する関数は
  =IF($A$1="",L14,INDIRECT("L"&N14+13))
  下へ オートフィル

  D3 セルに入力する関数は
  =IF($A$1="",L24,INDIRECT("L"&N24+13))

  F3 セルに入力する関数は
  =IF($A$1="",L34,INDIRECT("L"&N34+13))

  H3 セルに入力する関数は
  =IF($A$1="",L44,INDIRECT("L"&N44+13))

. 

複数ある検索データを取り出す 5 作業列なし関数

作業列を使わない
   関数で求める方法


 条件と一致する行が、何行目か 計算
 求めた行数の小さい方から
 順番に データを取り出す
 これを、一つの関数内で設定する


使用するのは、今までと同じ

  201905280011.png
 Sheet2 は、以下のような状態

  201905311001.png

  Sheet2 の A5 セルに
 =IF(COUNTIF(Sheet1!$D$3:$D$47,$A$2)<ROW(A1),"",INDEX(Sheet1!B$3:B$47,SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(A1))))
 注意:ネットにアップするために、関数内の「<」を全角にしています、本来は半角です
数式欄に入力が終わったら
 [Ctrl]+[Shift]+[Enter]キーを 押す
  ※ 関数内が、配列なので、 「配列数式
 {=IF(COUNTIF(Sheet1!$D$3:$D$47,$A$2)<ROW(A1),"",INDEX(Sheet1!B$3:B$47,SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(A1))))}
 注意:ネットにアップするために、関数内の「<」を全角にしています、本来は半角です


I F 関数
 「 論理式 」
  COUNTIF(Sheet1!$D$3:$D$47,$A$2)<ROW(A1)
  注意:ネットにアップするために、関数内の「<」を全角にしています、本来は半角です
 「 真の場合 」
  ""
 「 偽の場合 」
  INDEX(Sheet1!B$3:B$47,SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(A1)))

「 論理式 」

 COUNTIF(Sheet1!$D$3:$D$47,$A$2)<ROW(A1)
 Sheet1 の D列=「性別」の列に、
 選択した性別「男」の数を COUNTIF 関数で求め
 関数を入力したセルの数と比較する
 データが増える=行数が増える
 最初のセルに ROW(A1) なので、データの数と同じになる
 つまり、行数が、データの数より増えた時点で、TRUE ( 真 )

 「 真の場合 」
 
 行数が、データの数を超えたら、空欄=""

 「 偽の場合 」

 INDEX(Sheet1!B$3:B$47,SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(A1)))

 INDEX 関数

 配列
  Sheet1!B$3:B$47
 行番号
  SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(A1))

配列
求める値は、一番左の列「受験番号」のB列
設定する数式を 右へオートフィルして、別の列のデータを求めるので
列は、固定しない

行番号
Small 関数
配列
 IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45))
順位
 ROW(A1)

配列は、D列が、「男」の場合 行番号を求め
順位は、関数を設定したセル上から順番に求める

A5 セルに、入力し、配列数式に決定

 201905311002.png

右へ オートフィルする
 
 201905311003.png

下へも オートフィル
 ※ 予想データ数より すこし多めに オートフィルする

 201905311004.png

結果

 201905311005.png

A2 には、リストを設定してあるので、「女」に変更する

 201905311006.png

 201905311007.png

ここでは、すべてのデータを表示しましたが、
「 氏名 」だけを抽出したい場合
 {=IF(COUNTIF(Sheet1!$D$3:$D$47,$A$2)ROW(B1),"",INDEX(Sheet1!C$3:C$47,SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(B1))))}
 注意 : ネットにアップするために、関数内の「<」を全角にしています、本来は半角です
  コピーして使用する場合は、注意してください


INDEX 関数の「範囲」を 目的の「 氏名 」のセル範囲にするだけで良い

201905311009.png

 201905311008.png


使用している セル ・セル範囲
 1. D3:D47 = 検索対象のセル範囲
 2. ROW(A1) これは、2回とも データを 1から確認する方法
    A1でも B1 でも C1 行数が「 1 」 ならば 構わない
 3. INDEX 関数の範囲 求めるデータの列(セル範囲)
 4. Sheet2!$A$2 は、検索の値
 5. ROW(Sheet1!$B$1:$B$45) データと同じ幅を持つセル範囲
   列は、どの列でも構わない、行が、「 1 」から 必ず、データの量と同じ行数にする

変更するには、
以上のことを 考慮し 数式を変更し
最後に、必ず、配列数式に 設定する
[Ctrl]+[Shift]+[Enter]キーを 押す

. 

複数ある検索データを取り出す 4 ちょっと変わった方法

複数ある検索データを取り出す 
ここに、入れようか迷ったのですが
私が、面白いって、思ってしまい
どうしても忘れないうちに、書いておこうと思い
無理やり、ここへ入れました

ちょっと前に、書いた 新しい関数の TEXTJOIN 関数を使った方法

使用するのは、今までと同じ一覧表
条件も同じ「 男 」のデータ

自分用と思ってください
ややこしいです

Sheet2 は、以下のようにする

 201905280027.png

A5 セルに、以下の数式
=TEXTJOIN(",",1,IF($A$2=Sheet1!$D$3:$D$47,Sheet1!B$3:B$47,""))
[Crtl]+[Shift]+[Enter]キーで、確定
配列数式です
{=TEXTJOIN(",",1,IF($A$2=Sheet1!$D$3:$D$47,Sheet1!B$3:B$47,""))}

201905280028.png

こうなってから、右へオートフィル

 201905280029.png

そのまま、コピーして
少し離れた A7セルで、右クリック
「形式を選択して貼り付け」をクリック

 201905280030.png

[形式を選択して貼り付け]ダイアログ
【 〇 値 】 に、チェックを 入れ
【 □ 行列を入れ替える 】 に、チェックを入れ
[ OK ] クリック

 201905280031.png

データが、「 , 」区切りで、表示される

 201905280032.png

データ]タブ 「区切り位置」をクリックする

 201905280033.png

データの区切り位置 設定ウィザード]ダイアログ
【 〇 区切り記号 】 に、チェックを入れる
[ 次へ ] を クリック

 201905280034.png

データの区切り位置 設定ウィザード- 2/3]ダイアログ
【 □ カンマ 】 に、チェックを入れる
[ 完了 ] を クリック

 201905280035.png

データが、横ですが、表示される

 201905280036.png

A7 セルから、[Ctrl]+[Shift]+[→]で、右端まで選択
[Ctrl]+[Shift]+[↓]で、すべて選択
コピーする
A16 セルに、先ほどと同様
「形式を選択して貼り付け」
【 〇 値 】 に、チェックを 入れ
【 □ 行列を入れ替える 】 に、チェックを入れ
[ OK ] クリック
行列を入れ替えて、値で貼り付ける

 201905280037.png

この後は、5行目から15行を削除する

 201905280038.png

実用には、向かないかもしれませんが
     何かのヒントには、なりそう