• ベストアンサー

続:Excelでのグラフ

ルーム1~6までありそれぞれ、入室時間・手術時間・導入時間・覚醒時間をそれぞれ各ルームごとに入力し、横棒グラフに表示したいのです。また、表示されたグラフの中に使用目的で記入したものが、グラフ内に表示したいのです。 ※以前に書き込みしていた分の続きです。  入室時間・手術時間・導入時間・覚醒時間ともに15分単位です。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.7

該当する時間単位を赤い帯で表示できるようになったら、各データの診療科を赤い帯の左に表示します。 C3セル(開始時間のB3セルの右のセル)に以下の式を入力し、Ctrl+Shift+Enterで確定し、セルの書式設定の配置タブで横位置を「中央揃え」にしてから、B3:C3セルを選択して右方向および下方向にオートフィルコピーします。 =INDEX($B:$B,SUMPRODUCT(((IF($A$12:$A$30=$A3,$E$12:$E$30,1)+"0:15"=C$2)+(IF($A$12:$A$30=$A3,$E$12:$E$30,1)=C$2))*ROW($B$12:$D$30))) 上記の方法は、3つのセルで1つの文字列を表示する設定になっていますので、診療科など表示する文字列が長い場合は、一部しか表示できない可能性もあります。 A11セル以下の一覧表で詳細データが参照できますので、細かい詳細データは不要と思われますが、このようなデータをそのまま表示させたい場合は、適宜セル幅を広げたり、文字列の調整を(例えば、フォントサイズを変更した入り、短い表示用の文字列を設定)するとよいと思います。 また、A12セル以下のデータのある部分だけ罫線を表示するなら、A12セル以下の数式データ範囲を選択して、数式を使った条件付き書式で「=$A12<>0」と入力して「書式」の罫線を実線を入れてください。 帯の色を変更したり、行間隔を広げるなど、もう少しこだわったレイアウトにしたいなら、少し手数が増えますが、条件付き書式を1行ごとに設定するなどしてご希望の表示にしてみるのもよいと思います(別の場所に幅の広いセルで表示項目を表示させておき、このセル範囲を図のリンク貼り付けして元のチャートの上に重ねて表示させる手などもあります)。

tatsuo78
質問者

補足

ご回答ありがとうございます。 ご丁寧に教えて頂きましてほんとにありがとうございました。 Excelでは思ったように表示されるようになりました。 ただ、私の勤務している病院ではExcelだけでなくKingSoftがインストールされていることわかり そのKingSoftのSpreadSheet(MicrosoftExcel)だと教えて頂いた関数が機能しないことがわかりました。 ファイルをKingSoftで開けて、日付検索のA12に数字を入力すると、 この数式を計算できません。数式のセルの参照は計算結果を参照しているため、循環参照になります。 と表示されてしまいます。 KingSoftのサイトで色々確認してみたのですが、関数もほぼ互換できるようなことしか書いてなかったのでサポートにメールをしていた状態です。 取り急ぎご報告させて頂きました。 いずれにしても、Excelでは完成しましたのでお礼をさせて頂きます。 ありがとうございました。

その他の回答 (6)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

条件付き書式で該当範囲の時間に、セルに色を付ける方法を説明します。 B2セルに表示の開始時間(例えば9:00)を入力し、C2セルに「=TEXT(B2+"0:15","h:mm")*1」を入力し右方向にオートフィルし、B列から右のセル幅を適宜狭くします。 A3セルから下に1,2,3,4,5,6とRoom番号(表示シートにまとめたRoomと同じ数字または文字列)を入力します。 B3から右方向に色を付けたい範囲を8行目まで選択し、ホームタブの「条件付き書式」で「新しいルール」から「数式を使用して・・・・」を選択して以下の式をコピー貼り付けし、「書式」から塗りつぶしを赤にします。 =SUMPRODUCT((IF($A$12:$A$30=$A3,$E$12:$E$30,1)<=B$2)*(($A$12:$A$30=$A3)*$Q$12:$Q$30>B$2)) 上記の操作で該当時間の範囲に色を付けることができるか確認してください。 ちなみにRoom間の区切りには太罫線を入れたり、時間の区切りには点線の罫線を入れる、1行目に1時間ごとの数字を入れて2行目を非表示にするなどして見やすいレイアウトを工夫してください。 また、数式部分で「0」を表示しないために、Excelのオプションからセロ値を表示しない設定にしてください。 さらにグラフ(赤い色の帯)に表示したい項目(診療科でよいのですか?)や、数式でデータのある部分だけ自動的に罫線を引くなどの細かい設定は、上記の設定がうまくいったら説明します。

tatsuo78
質問者

補足

年末年始で休暇をとっておりました。 申し訳ありません。 上記ご指示頂いたとおり操作やってみました。 正常に表示されました。 >さらにグラフ(赤い色の帯)に表示したい項目(診療科でよいのですか?)や、数式でデータのある部>分だけ自動的に罫線を引くなどの細かい設定は、上記の設定がうまくいったら説明します 次のステップお願い致します。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

添付画像を忘れていました。 ちなみに、数式はA列にデータが入っているものの一覧を作成するようにしましたが、添付画像をみるとA列にデータがあっても開始時間が入力されていないものもあるようなので、開始時間が入力されているものだけ抽出するなら、数式の「INDIRECT($A$10&"!a3:a100")=""」の部分を「INDIRECT($A$10&"!M3:M100")=""」にしてください。 また、お分かりのことと思いますが、時間表示のセルはセルの表示形式を「時刻」にしてください。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

添付が画像のような空白行のあるシートが日付ごとに作成されていて、特定の日付のデータのグラフなどを作成したい場合は、必要なデータを表示シートにまとめて表示する必要があります。 例示の配置なら、まず表示シートにシート名を入力して、以下のような数式で添付画像のように必要なデータを集めてください。 A10セルの書式を「文字列」にして「12.28」のように日付を入力します。 A12セル =INDEX(INDIRECT($A$10&"!H:H"),SMALL(INDEX((INDIRECT($A$10&"!A3:A100")="")*100+ROW($A$3:$A$100),),ROW(A1))) B12セル(レイアウトの関係でB、C、D列を結合しておきます) =INDEX(INDIRECT($A$10&"!A:A"),SMALL(INDEX((INDIRECT($A$10&"!A3:A100")="")*100+ROW($A$3:$A$100),),ROW(A1))) E12セル =INDEX(INDIRECT($A$10&"!M:M"),SMALL(INDEX((INDIRECT($A$10&"!a3:a100")="")*100+ROW($A$3:$A$100),),ROW(A1))) H12セル =INDEX(INDIRECT($A$10&"!N:N"),SMALL(INDEX((INDIRECT($A$10&"!a3:a100")="")*100+ROW($A$3:$A$100),),ROW(B1))) K12セル =INDEX(INDIRECT($A$10&"!O:O"),SMALL(INDEX((INDIRECT($A$10&"!a3:a100")="")*100+ROW($A$3:$A$100),),ROW(D1))) N11セル =INDEX(INDIRECT($A$10&"!P:P"),SMALL(INDEX((INDIRECT($A$10&"!a3:a100")="")*100+ROW($A$3:$A$100),),ROW(E1))) Q12セル(終了時間の計算) =IF(H12="","",SUM(E12:N12)) まず上記のような数式でA10セルに日付を入力すると、必要データが表示シートに詰めて表示されるか調べてみてください。 上記の数式でうまく表示できたら、次に条件付き書式を利用してその上のセルに開始時間から終了時間までを15分単位で赤く表示する方法を提示します。

tatsuo78
質問者

補足

ご返信ありがとうございます。 頂いた数式で12.28分の表示ができるようになりました。 次の条件付書式をお願い致します。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

以前の質問と同じ質問を新しい質問として立てるなら、過去の質問を解決処理して、新しい質問にはこれまでの経過がわかるように、http://questionbox.jp.msn.com/qa6398402.htmlのようなリンクを貼るようにしましょう。 このようにしないと、この質問を初めて見る回答者にこれまでの経過がわからないだけでなく、シート名の情報などが条件の後出しになり、無駄な回答をさせることになります。 添付画像ですが、小さくでデータが見にくいのですが、最初に提示された表とは一部レイアウトが違うように思うのですが、どれが本当のデータなのでしょうか? このようなケースではグラフ作成に必要なデータ(時間や時刻と表示項目)のセル位置と実際に入力されているデータ内容を数行分本文に例示された方が良いと思います(開始時間だけが時刻でその他は時間なのでしょうか?) また、シート名の情報は前回のシートに分けたパターンで(シートを分けるのはあまり勧めできないのですが)、表示用シートに日付を入力するとグラフを作成するということで良いのでしょうか?

tatsuo78
質問者

補足

色々不手際ありすみません。 みなさんにご迷惑をおかけしてしまいました。 整理させて頂きます。 正しい情報を改めて記入させて頂きます。本当に申し訳ありません。 まず、データについてですが、画像でも貼り付けましたが、(小さくてすみません) C1 日付(この場所は変更可能) A2 診療科 B2 病棟 C2 氏名(カナ) D2 氏名 E2 年齢 F2 性別 G2 感染症 H2 Room I2 診断 J2 麻酔 K2 執刀医 L2 介助医 M2 入室時間(実際の時間) N2 手術時間(かかる予定時間) O2 導入時間(かかる予定時間) P2 覚醒時間(かかる予定時間) Q2 備考 上記が毎日シートに分かれております。 希望としては、表示用のシートに日付を検索して該当日のM列~P列までをグラフにして可視化したいです。またグラフの表示で、RoomNoごと(1~6)で表示して頂きたいです。 これで大丈夫でしょうか。 毎回毎回申し訳ありません。 よろしくお願いします。

  • umazanpai
  • ベストアンサー率38% (53/137)
回答No.2

Excelから直接でーたはりつけてよ。 前質も見た記憶歩けど。。。

  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.1

M~P列のデータを積み上げ横棒グラフで作成すると添付画像のようになります。 入室の時刻の系列は非表示にしています。 目盛の単位は1時間(0.0416666666666667)にしています。 たたき台としてこんな感じでどうでしょうか?

関連するQ&A