エクセルについての質問です
ある機械の稼動グラフを作りたいと思っています
そのためのデータをまとめたいのですが
シート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が続いていく感じです)を入れたいのですが
なかなかうまくいきません(日付などはあわしています)
誰か詳しい方ご教授お願いします
No.4
- 回答日時:
>なかなかうまくいきません
検索はVLOOKUPやMATH関数を使うが、どういう関数でやったか書くべきだ。
VLOOKUP関数でやったが、など。
Sheet2に該当無しはどうしましたか?
>(日付などはあわしています
とはどういうこと?
日付部分は例データに無いが、実際データではあるのか?。
時刻は日付時刻シリアル値で入っていることに間違いないか。文字列ではないでしょうね。
単純なケースでは
Sheet2 A,B列
8:20ON
8:43OFF
9:01ON
9:03ON
9:04OFF
・・・
Sheet1で A,B列
9:00#N/A
9:01ON
9:02#N/A
9:03ON
9:04OFF
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/AOFF
9:01ONON
9:02#N/AON
9:03ONON
9:04OFFOFF
このONなら5、OFFなら0は
Sheet2でC列に
=IF(B1="ON",5,0とト入れて、下方向に式複写。
Sheet2
A列 B列 C列
8:20ON5
8:43OFF0
9:01ON5
9:03ON5
9:04OFF0
C列データを取ってくるほうが、Sheet2のB列の式が長くならなくて済むように思う。
時刻シリアル値に付いては
既出回答でご指摘の件は、Googleででも「エクセル 時刻 値 誤差」で照会すれば下記ほか沢山記事がある点です。
http://www.excel.studio-kazu.jp/mwiki/index.php/ …
本件の場合、気にしないで済むかどうか判らない。
つっこみありがとうございます。
自分はCOUNTIF関数をつかってました。
いろいろな考え方がありますね。
参考になりました。 ありがとうございます。
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関数を使ってもよいでしょう。
試してみましたがうまくいきませんでした。
上から下までずっと0がでます。
参考にしながらいろいろやってみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数学 Tan(θ)-1/Cos(θ)について...
-
4つのパターンを表示するEXACT...
-
エクセルの数式で教えてください。
-
エクセルで指定した日付、店舗...
-
Excel:一部のフォントでセルの...
-
Excel初心者です。 詳しい方、...
-
Excel初心者です。 詳しい方、...
-
Excel 2019 のピボットテーブル...
-
スマートな関数を教えて下さい。
-
Excelのグラフ軸について
-
EXACT関数とIF関数の組み合わせ...
-
Excel ウインドウ枠の固定をす...
-
エクセルで日付の入ったセルの...
-
excelの不要な行の削除ができな...
-
INDIRECTを使わず excelで複数...
-
各ページの1番上の表示について
-
スプレッドシートの関数VLOOKUP...
-
エクセルでセルに「氏名を入力...
-
関数を教えて下さい。
-
Excelのif関数で文字が見えなく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報