エクセルで稼動グラフを作成する方法とは?

このQ&Aのポイント
  • エクセルで機械の稼動グラフを作成したい場合、シート1に1分おきの時刻表を記入し、シート2に稼動状況を記録します。そして、シート1のB列には、シート2のON/OFFに応じて数値を入力する必要があります。しかし、実際には正しく同期させることが難しいため、正確な値を入力するための方法を教えていただきたいです。
  • エクセルで機械の稼動グラフを作成したい場合、シート1には1分おきの時刻表を記入し、シート2には発生時刻とON/OFFの情報を記録します。そして、シート1のB列には、シート2のON/OFFに応じて数値を入力する必要があります。しかし、正確な値を入力するためには、セルの値を参照して続けていく必要があります。どのように実現するか詳しい方に教えていただきたいです。
  • エクセルで機械の稼動グラフを作成する方法について質問です。シート1には1分おきの時刻表があり、シート2には発生時刻とON/OFFの情報が記録されています。シート1のB列には、シート2のON/OFFに対応して数値が入力される必要があります。しかし、正確な値を入力するためには、セルの値を参照しながら入力する必要があるかと思います。どのようにすれば正確な値を入力することができるのでしょうか?詳しい方に教えていただきたいです。
回答を見る
  • ベストアンサー

IF関数やCOUNTIF関数など詳しい方

エクセルについての質問です ある機械の稼動グラフを作りたいと思っています そのためのデータをまとめたいのですが シート1のA列に1分おきの時刻表があり シート2のA列に発生時刻(時間帯はバラバラです)、B列にONとOFFがはいっています こんな感じです シート1      シート2   A   B      A   B 1 9:00  0    1 8:20  ON 2 9:01       2 8:43  OFF 3 9:02       3 9:03  ON 4 9:03         (略)   (略) このときシート1のB2から下に、ONになれば5、OFFになれば0 何もないときは上のセルと同じ値(OFFのときは0が続いていく感じです)を入れたいのですが なかなかうまくいきません(日付などはあわしています) 誰か詳しい方ご教授お願いします

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

B1に以下のような数式を入れて、その数式を下へコピーしてみてください。 =IF(VLOOKUP(A1,Sheet2!$A$1:$B$4,2,TRUE)="OFF",0,5)

kiguruipierot
質問者

お礼

VLOOKUPのTRUEはよくわかってませんでした。 バッチリできました。 すごく勉強になりました。ありがとうございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

>なかなかうまくいきません 検索はVLOOKUPやMATH関数を使うが、どういう関数でやったか書くべきだ。 VLOOKUP関数でやったが、など。 Sheet2に該当無しはどうしましたか? >(日付などはあわしています とはどういうこと? 日付部分は例データに無いが、実際データではあるのか?。 時刻は日付時刻シリアル値で入っていることに間違いないか。文字列ではないでしょうね。 単純なケースでは Sheet2 A,B列 8:20 ON  8:43 OFF 9:01 ON 9:03 ON 9:04 OFF ・・・ Sheet1で A,B列 9:00 #N/A 9:01 ON 9:02 #N/A 9:03 ON 9:04 OFF B1の式は =VLOOKUP(A1,Sheet2!$A$1:$B$10,2,FALSE) 下方向に式を複写 結果上記B列 >何もないときは上のセルと 該当なしのばあい、と言うべき。 ISNAやISERRORで検知する。 その場合Sheet1上で直前の行のB列を取るらしいから、最初行のデータでも、直前行を考えるのは出来ないから B2は=IF(ISERROR(VLOOKUP(A2,Sheet2!$A$1:$B$10,2,FALSE)),B1,VLOOKUP(A2,Sheet2!$A$1:$B$10,2,FALSE)) と入れて下方向に式を複写する。 B1は特別に =IF(ISERROR(VLOOKUP(A1,Sheet2!$A$1:$B$10,2,FALSE)),"OFF","ON") にする。 Sheet1 A列 B列 B列(改良) 9:00 #N/A OFF 9:01 ON ON 9:02 #N/A ON 9:03 ON ON 9:04 OFF OFF このONなら5、OFFなら0は Sheet2でC列に =IF(B1="ON",5,0とト入れて、下方向に式複写。 Sheet2  A列    B列    C列 8:20 ON 5 8:43 OFF 0 9:01 ON 5 9:03 ON 5 9:04 OFF 0 C列データを取ってくるほうが、Sheet2のB列の式が長くならなくて済むように思う。 時刻シリアル値に付いては 既出回答でご指摘の件は、Googleででも「エクセル 時刻 値 誤差」で照会すれば下記ほか沢山記事がある点です。 http://www.excel.studio-kazu.jp/mwiki/index.php/%E6%99%82%E5%88%BB%E8%A8%88%E7%AE%97%E8%AA%A4%E5%B7%AE%E3%81%AE%E8%A7%A3%E6%B6%88%E6%96%B9%E6%B3%95 本件の場合、気にしないで済むかどうか判らない。

kiguruipierot
質問者

お礼

つっこみありがとうございます。 自分はCOUNTIF関数をつかってました。 いろいろな考え方がありますね。 参考になりました。 ありがとうございます。

noname#204879
noname#204879
回答No.3

》 ONになれば5、OFFになれば0何もないときは上のセルと同じ 上の意味は、OFFからONに変化すれば5、ONからOFFに変化すれば0、変化ないときは上のセルと同じ、ということですか?

kiguruipierot
質問者

補足

はい、そうです。 説明が下手で申し訳ないです。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

時刻はシリアル値で見ますと小数点以下の桁数が多くお示しのようなケースではシート1とシート2の表示時刻が同じでもシリアル値では違っている場合があり必ずしも一致しているとは言えません。そのために単なる式ではエラーとなり正しい答えが得られません。そこで式の上で多少の工夫が必要となります。ここでは表示の時間にプラス0.1秒をして関数を使っています。 例えばB2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ISERROR(MATCH(A2+"0:00:00.1",Sheet2!A:A,1)),B1,IF(INDEX(Sheet2!B:B,MATCH(A2+"0:00:00.1",Sheet2!A:A,1))="ON",5,0)) INDEX関数の代わりのVLOOKUP関数を使ってもよいでしょう。

kiguruipierot
質問者

お礼

試してみましたがうまくいきませんでした。 上から下までずっと0がでます。 参考にしながらいろいろやってみます。 ありがとうございました。

関連するQ&A

  • IF COUNTIF関数について教えて頂きたいです

    =IF(COUNTIF(A:A,B1)=0,"NG","") 上記の式の詳細について教えて頂きたいです。 私の理解としては、A列とB列を比較しB列にあるものを(B列にしかないもの)検索し、一致する値は0と表示、一致しない値はNGの表示といった解釈でいいでしょうか? =0,"NG","")   ←この式の意味が良くわからずにいます。 作業として行いたいことはA列とB列を比較しB列にしかない値をC列に表示したいです。この式の場合C列に一致しない値をNGと表示させる式だと理解しています。 また、上記の様な関数を説明しているサイトなどがあれば教えて頂きたいです。 宜しくお願いします。

  • エクセルのIF関数について

    A列の時刻表示を、ある条件によって、隣のB列に書き直す計算式について質問します。 A1セルの値が10:00又はそれよりも早いとき(9:45や9:20など)は、B1セルに10:00(ぴったり)と入力されるような計算式。 A1の値が10:00よりも遅い場合(10:13や10:37)は10分の位で切り下げて表示(この場合10:10や10:30等)になるような計算式です。 以下の式を作りましたが、うまく作動しません。 どこが悪いでしょうか? =IF(A1<=10:00,[B1=10:00],[B1=ROUNDDOWN(D3,1)]) 特に最後の(D3,1)の1は時刻表示の10分の位の位置のばあい、何になるのかよく わかりません。 どうぞよろしくお願いします。

  • Excel2003 IF関数

    シート1のA列に値を入力して行き、終了したら同じようにシート2のA列に値を入力して行きます。 この時、シート1に入力した値とシート2に入力した値は同じでなければなりません。 シート2は再チェック用なので、シート1と値が異なる入力をした場合、 値を入力するセル(A列)の隣のセル(B列)に、 IF関数、真の場合『OK』・偽の場合『入力エラー』と反映されるようにしております。 =IF(B1=seat!B1,"OK","入力エラー") 『OK』の場合は表示させる必要は無いので、条件書式を使用し、 フォント色を白くして、表示させないようにしております。 ただ、シート1を入力してからシート2に入力を始めるため、 シート2のB列には既にに『入力エラー』の表示がでてしまっています。 ※値を入力しないセルもあるのでその場合は『OK』が表示されますが、 条件書式によりフォント色を白くしておりますので、表示されません。 シート2には何も入力をしていないので、『入力エラー』と表示されるのは当然なのですが、 シート2に値を入力してから、シート1,2で異なる値の場合だけ『入力エラー』と表示されるのが理想です。 IF関数はこのような場合適していないのでしょうか? 何か良い方法がございましたらご教示頂けますと幸いです。 宜しくお願い致します。

  • EXCELのIF関数の使い方

    わかりづらいかもしれませんが、よろしくお願いします。 シート1とシート2があり、シート2にはA、B、C3つの列にそれぞれのグループ(各50名ほど)が並べてあります。 ここで、シート1のA1に特定の名前をいれ、 シート2のA列なら甲、B列なら乙、C列なら丙といった値を、 シートB1に自動的に打ち出してくれる数式を教えてください。よろしくお願いします。

  • エクセル・if関数

    シート名「計算式」のセルA1には日付の入力 シート名「計算式」のセルB1には計算式が入力されている シート名「計算式」のセルB1は別シート セルC1にリンクしている シート名「計算式」のセルA1に入力した日付が 2008/12/31以降ならば、 別シート セルC1の数字を100倍にしたい場合の 関数を教えていただきたく思います。 質問が分かりづらくて申し訳ありません。 よろしくお願いいたします。

  • IF?COUNTIF?何をどう組み合わせたらできるのかわかりません(汗

    IF?COUNTIF?何をどう組み合わせたらできるのかわかりません(汗) 画像のような入力がされていたとします。 ・データの出力条件 A列が1の場合、B列の良い・悪い・普通のそれぞれの個数をカウントしたい。 ※画像の黄色の部分を出すイメージです ※A列が2の場合もそれぞれカウントしたいです ?A列B列は随時入力をしていくので増えます、増えたデータも自動的に黄色セルに反映したいです ?別シートは使わず、黄色セルに関数の数式を入れ、解決させたいです お知恵を貸してください!

  • Excelの関数を教えてください。

    Excelの関数で例えば シートAのB行の中の値とシートBのセルA1の値、シートAのC行の中の値とシートBのセルB1の値が一致した行のF列の値を返す関数を考えているのですが、いろいろ試してもエラーになってしまいます。(B列とC列の一致する行は1つしかありません) これができないと家に帰れません;; どなたか、教えてください! よろしくお願いします。

  • EXCEL関数について

    EXCEL関数について Sheet1、A1~A1000セルに「1~10」までの値がランダムに入力されております。 数字は「グループ1」、「グループ2」・・・という意味です。 B列、B1~B1000セルには「1~4」までの値がランダム入力されております。 B列については、空白のセルもあります。 Sheet2、A1~A10セルに、「1~10」までの値、「グループ1」~「グループ10」までが順に入力されております。 ここで、Sheet2、B列~E列、それぞれの1~10セルを使用し、、 それぞれの「グループ」がSheet1にて「1~4」の値をいくつずつ選んでいるか算出したいのです。 「グループ1」について、「1」のカウントはB1セル、「2」のカウントはC1のセルに返します。 同じように「グループ2」はB2~E2のセルに、「グループ3」はB3~E3のセルに値を返したいのです。 「COUNTIF」等の関数でいろいろと試してみたのですがうまく反映されません。 拙文乱文、大変恐縮ですが、ご教示頂きたく何卒宜しくお願い致します。

  • openoffice calc で、IF関数

    openOffice calc の IF関数についての質問です。 A列のA1からA20のセルに(A,B,C,D)が、ランダムにあるとします。 これを、A列のセルの値が”A”ならば、返す値は”あ”、”B”ならば、”い”、同じように「C→う」「D→え」 のように、値に応じた、答えをB列に出させるにはどのような関数と式を使えば良いのでしょうか? 宜しくお願い致します。

  • IF関数について

    IF関数について A列のセルに住所が入力されていて、「中野区」という文字列が含まれているときに「○」そうでない場合は「-」をB列セルに表示させる方法で B列セルに、 =IF(COUNTIF(A1,"*中野区*"),"○","-") を入力すれば良いことがわかりました。 この条件に加えて、A列のセルが空白の場合上の行を参照するという条件を加えたいと思います。 例A3のセルが空白の場合A2を参照しB3に表示させる。 因みに、A2も空白の場合A1を参照する。 って感じにしたいです。 宜しく御願いします。

専門家に質問してみよう