Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2019)
グラフ作成
投稿日時: 22/05/05 22:03:14
投稿者: haseha

下記のような表をグラフにしたいのですが何か良い案はございませんでしょうか。
縦軸が開始位置のA、B、横軸が開始時刻になるのかと思いますが
こちらをひとつのグラフにまとめることは可能でしょうか。
 
      開始時刻  開始位置  終了時刻  終了位置
1人目    8:00:02      A     8:00:05      B
2人目    8:00:06      B     8:00:09      A
3人目    8:00:07      B     8:00:10    A
4人目
5人目
 ・
 ・
 ・
 

回答
投稿日時: 22/05/06 06:03:53
投稿者: んなっと

 Aを0,Bを1に置換
→下のように配置
 
    A    B   C
1      時刻 位置
2 1人目 8:00:02   0
3     8:00:05   1
4           
5 2人目 8:00:06   1
6     8:00:09   0
7           
8 3人目 8:00:07   1
9     8:00:10   0
 
→C2:C20選択
→表示形式 ユーザー定義
[=0]!A;[=1]!B;;
 
    A    B   C
1      時刻 位置
2 1人目 8:00:02   A
3     8:00:05   B
4           
5 2人目 8:00:06   B
6     8:00:09   A
7           
8 3人目 8:00:07   B
9     8:00:10   A
 
→B1:C20選択
→挿入 グラフ 散布図(直線とマーカー)
→挿入されたグラフを選択して グラフのデザイン 
 グラフ要素を追加
 データラベル 上
→挿入されたデータラベルを選択して右クリック
 データラベルの書式設定
 ラベルオプション ラベルの内容 セルの値だけチェック
 データラベルの範囲の選択 A2:A20

投稿日時: 22/05/07 11:26:25
投稿者: haseha

ありがとうございます。
作成できました。
休み明けにこちらで確認してみます。

回答
投稿日時: 22/05/07 12:48:15
投稿者: んなっと

      開始時刻  開始位置  終了時刻  終了位置
1人目 8:00:02   A     8:00:05   B
2人目 8:00:06   B     8:00:09   A
3人目 8:00:07   B     8:00:10    A
 
↓ 人数が多いときは、手作業での配置換えが面倒。
  
    A    B   C
1      時刻 位置
2 1人目 8:00:02   0
3     8:00:05   1
4           
5 2人目 8:00:06   1
6     8:00:09   0
7           
8 3人目 8:00:07   1
9     8:00:10   0
 
関数を使えば少しだけ楽になりますが、どうしますか?

投稿日時: 22/05/12 10:50:45
投稿者: haseha

ありがとうございます。
並び替えなどして結構アナログな方法でやってしまいました。
関数でも上手く出来ますか?
 
また、グラフが全部縦線になるはずなのに横に線が入ってしまいました。
なぜか原因わかりますでしょうか?

回答
投稿日時: 22/05/12 15:01:58
投稿者: んなっと

並べ替えを使った工夫をしたのですね。それでいいと思います。

引用:
縦線になるはずなのに横に線が入ってしまいました

行/列の切り替えという意味ではなさそうですね。
意味不明ですが、以下適当に回答してみます。
 
B1:C10を選択して散布図を作ると、データの選択でXの値の修正などが必要になります。
B1:C9を選択するようにしてください。
  
     B   C
 1   時刻 位置
 2 8:00:02   0
 3 8:00:05   1
 4        
 5 8:00:06   1
 6 8:00:09   0
 7        
 8 8:00:07   1
 9 8:00:10   0
10        
  
または、横軸の見出しを削除して下のようにしてから散布図を挿入してみてください。
もしかしたらこれが一番わかりやすいと思います。
  
     B   C
 1      位置
 2 8:00:02   0
 3 8:00:05   1
 4        
 5 8:00:06   1
 6 8:00:09   0
 7        
 8 8:00:07   1
 9 8:00:10   0
10        

回答
投稿日時: 22/05/12 23:01:50
投稿者: んなっと

あと、すべて飛び飛びの斜め線になるはずなのに
それらが繋がってしまったという意味なら....
繋がってほしくない行には=NA()を入れることになります。
これも可能性は低いので詳細は省きます。

投稿日時: 22/05/13 00:08:03
投稿者: haseha

ご回答ありがとうございます。
すみません、グラフ集計初心者かつ画像貼り付けが出来ないので説明が難しいですが、
 
↓以下をグラフと見立てて…
 
A ――――――――――――――――――
 
 
 
B ――――――――――――――――――
  8:00  9:00 10:00 11:00・・・
 
この中にA〜Bの縦(斜め)の線が横に人数分(100以上)ずらっと出来ていますが
所々横に線が入ってしまっています。
例えば縦軸Bのラインに沿って8:00〜9:00の間に線があるということです…
一本ずつ線の選択が出来ないのでどこがそうなっているのかわかりません。。
 
また説明が意味不明でしたらすみません。。

回答
投稿日時: 22/05/13 08:37:11
投稿者: んなっと

置換した後、関数で配置換えする方法。
 
    A     B     C     D     E F   G    H   I
1     開始時刻 開始位置 終了時刻 終了位置        時刻 位置
2 1人目  8:00:02     0  8:00:05     1   1人目 8:00:02   0
3 2人目  8:00:06     1  8:00:09     0      8:00:05   1
4 3人目  8:00:07     1  8:00:10     0        #N/A #N/A
5                          2人目 8:00:06   1
6                              8:00:09   0
7                               #N/A #N/A
8                          3人目 8:00:07   1
9                              8:00:10   0
  
G2
=IF(ROW()>3*COUNTA(A:A),"",IF(MOD(ROW(),3)=2,INDEX(A:A,ROW()/3+2)&"",""))
下方向・↓
H2
=IF(ROW()>3*COUNTA($A:$A),"",IF(MOD(ROW(),3)=1,NA(),INDEX(B:D,ROUNDUP(ROW()/3,0)+1,1+2*(MOD(ROW(),3)=0))))
右方向・→下方向・↓
H列 表示形式 時刻
  
  
※ちなみに、完全な空白ではなくて余計な文字データがあると、グラフがつながってしまいます。
それを避けるためのNA()です。
  
    G    H   I
1         位置
2 1人目 8:00:02   0
3     8:00:05   1
4            ←ここはどちらも空白セル
5 2人目 8:00:06   1
6     8:00:09   0
7       =""  ="" ←見た目は空白のようだが、余計な文字データが入っているので
8 3人目 8:00:07   1  グラフが横につながってしまう
9     8:00:10   0

投稿日時: 22/05/13 09:29:04
投稿者: haseha

ありがとうございます。
よく見たら○人目の後に空白行を入れていませんでした。
連続データですと上手くいきませんか?
 
今こうなっています。
   
    A    B   C
1      時刻 位置
2 1人目 8:00:02   0
3     8:00:05   1
4 2人目 8:00:06   1
5     8:00:09   0        
6 3人目 8:00:07   1
7     8:00:10   0
 

回答
投稿日時: 22/05/13 10:35:50
投稿者: んなっと

それではだめです。

回答
投稿日時: 22/05/13 11:13:15
投稿者: んなっと

これが別の方法。
 
     H   I   J   K
1   時刻 1人目 2人目 3人目
2 8:00:02   0       
3 8:00:05   1       
4 8:00:06       1    
5 8:00:09       0    
6 8:00:07          1
7 8:00:10          0
 

回答
投稿日時: 22/05/13 16:05:41
投稿者: んなっと

2番目の方法を関数で処理。
横方向に系列が100並び、グラフ再描画が異常に遅くなり使い物になりませんが...
 
    A     B     C     D     E F    G   H   I   J
1     開始時刻 開始位置 終了時刻 終了位置    時刻 1人目 2人目 3人目
2 1人目  8:00:02     0  8:00:05     1   8:00:02   0  #N/A  #N/A
3 2人目  8:00:06     1  8:00:09     0   8:00:05   1  #N/A  #N/A
4 3人目  8:00:07     1  8:00:10     0   8:00:06  #N/A   1  #N/A
5                          8:00:09  #N/A   0  #N/A
6                          8:00:07  #N/A  #N/A   1
7                          8:00:10  #N/A  #N/A   0
 
G2
=IF(ROW()>2*COUNTA(A:A)+1,"",INDEX(B:D,ROW()/2+1,1+2*ISODD(ROW())))
下方向・↓
H2
=IF($G2="","",IF(COLUMN(B2)=INT(ROW()/2)+1,INDEX($C:$E,ROW()/2+1,1+2*ISODD(ROW())),NA()))
右方向・→下方向・↓

投稿日時: 22/05/16 23:03:57
投稿者: haseha

空白行を入れたら解決しました。ありがとうございました。
 
関数でも配置換えをやってみようと思い入れてみましたが上手く出来ませんでした。
 
=IF(ROW()>3*COUNTA(A:A),"",IF(MOD(ROW(),3)=2,INDEX(A:A,ROW()/3+2)&"",""))
下方向・↓
H2
=IF(ROW()>3*COUNTA($A:$A),"",IF(MOD(ROW(),3)=1,NA(),INDEX(B:D,ROUNDUP(ROW()/3,0)+1,1+2*(MOD(ROW(),3)=0))))
 
もしお時間あれば簡単にこちらの関数の意味を教えて頂けないでしょうか。
特に、ROW()>3の3 など、数字の意味がわかりません。

回答
投稿日時: 22/05/17 07:32:36
投稿者: んなっと

こちらの回答の位置に揃えて数式を貼り付けるだけなのですが、無理ですか...
残念です。解説しても無駄だと思いますので、スレッドを閉じてください。

投稿日時: 22/05/17 08:51:48
投稿者: haseha

貼り付けても関数が上手く反映されなかったため意味をきちんと知りたく質問させて頂きました。
長々とすみませんでした。ありがとうございました。