エクセルで経過時間を求める方法

このQ&Aのポイント
  • エクセルを使用して、特定の条件下での経過時間を求める方法について教えてください。
  • 質問者は、A列に時間(秒)があり、B列からF列まで温度が記録されている場合に、20℃未満になったときの各列の経過時間を求めたいと述べています。
  • 質問者はFIND関数を使用して試してみましたが、うまくいかなかったとのことです。
回答を見る
  • ベストアンサー

時間を求める方法を教えてください。

エクセルで経過時間を求めたいので、教えてください。A列には時間(秒)B列~F列には温度があります。BからF列の値が20℃の時の各列の経過時間を求めたいのです。(20℃未満になった場合はその時間)FINDを使ってみたのですが、うまくいきません。 例 A B C D E F℃ 0 30 30 31 27 30 1 25 28 29 26 30 2 20 26 27 27 28 3 23 24 25 25 26 4 20 22 23 24 24 5 18 20 21 23 22 6 16 18 19 22 21 7 14 16 17 21 20 8 12 14 15 20 19 ご教授お願いします。

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

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

お示しのデータがシート1のA列からF列の1行目から下方に入力されているとします。 お求めの表は同じシート内でも、別のシートでもよいでしょう。 お求めの表の形式を横方向に表示させるのでしたら次の式を例えば同じシートのJ1セルに入力して右横方向にドラッグコピーしたのちに下方向にもドラッグコピーします。 =IF(COLUMN(A1)>5,"",IF(ROW(A1)=1,Sheet1!B1,IF(ROW(A1)=2,INDEX(Sheet1!$A:$A,MATCH(20+0.1,Sheet1!B:B,-1)+1),""))) 縦方向にデータを表示させるのでしたら次の式を適当なセル、例えば同じシートのJ1セルに入力し右横方向にドラッグコピーしたのちに下方向にもドラッグコピーします。 =IF(OR(ROW(A1)>5,COLUMN(A1)>2),"",IF(COLUMN(A1)=1,INDEX(Sheet1!$B$1:$F$1,ROW(A1)),IF(COLUMN(A1)=2,INDEX(Sheet1!$A:$A,MATCH(20+0.1,INDEX(Sheet1!$B:$F,1,ROW(A1)):INDEX(Sheet1!$B:$F,1000,ROW(A1)),-1)+1))))

toufukuji
質問者

お礼

御礼遅くなりました。回答有難うございました。社内のいろいろな要望がありますので、参考させていただきます。

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

>作成済みのマクロ 一体何をどうしたいのか、まるでイミフメイです。 sub macro1()  dim r as long, c as long, LastRow as long  lastrow = cells(rows.count, 1).end(xlup).row  for c = 2 to 6   for r = 1 to lastrow    if cells(r, c) <> "" and cells(r, c) <= 20 then     cells(r, c).select     msgbox cells(r, 1).value & vblf & cells(r, c).value     exit for    end if   next r  next c end sub

toufukuji
質問者

お礼

御礼遅くなりました。回答有難うございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 一例です。 ↓の画像の配置だと、B1セルに =IF(COUNTIF(B2:B10,"<=20"),INDEX($A2:$A10,MIN(IF(B2:B10<=20,ROW(A1:A9)))),"") これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定! この画面からコピー&ペーストする場合は B1セルを選択 → 数式バー内に貼り付け → そのまま(編集可能のまま)Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これを列方向にオートフィルでコピーすると画像のような感じになります。 ※ 注意点として 数式内の >ROW(A1:A9) の部分はINDEX関数で範囲指定した行数に必ず1行目から合わせます。m(_ _)m

toufukuji
質問者

お礼

ご回答有難うございます。作成済みのマクロに追加してみて上手くいきませんでした。助かりました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

ごく安直に。 添付図: B1に =IF(MIN(B2:B10)>20,"NA",INDEX($A:$A,MIN(IF(B2:B10<=20,ROW(B2:B10))))) と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力、右にコピー。 ところで >FINDを使ってみた マクロでも使って調べたかったのですか?(どこに)どういう具合に結果を示したいのかも、ご相談に書き忘れてますけど。 マクロでも全く同様に、特に策を弄するまでも無く上から順に調べて20以下になったところで結果を示すのでも、十分です。

toufukuji
質問者

お礼

ご回答有難うございます。作成済みのマクロに追加してみて上手くいきませんでした。助かりました。

関連するQ&A

  • あるデータのみを抜き出す方法

    エクセルのことで教えていただきたいことがあります。 エクセルで、次のような、時間と温度の関係をとった表を作りました。 ・Aの列に1秒毎の時間をとる。(上から下に1秒ずつ増えていく) ・時間の表記は「○○時○○分○○秒」という表記。 ・Bの列に、Aの列の各時間(1秒毎)における温度が記されている。 この表を元に、温度測定開始時間から、30秒ごとのデータを抜き出し、グラフを作りたいと思っています。例えば、開始時間が12時34分56秒なら、秒の所が「56秒」と「26秒」となっているデータのみを上から順に抜き出していきます。 「条件付き書式」でできそうだと思い、いろいろと試してみたのですが、うまくできませんでした。何か良い方法があれば教えてください。

  • エクセルでの条件付きの値結合

    エクセルでのリストの編集方法を教えてください。 下記のような商品リストがあります。全て文字列形式です。 A列:商品コード (例:ATR-0001)半角英数 B列:バリエーション名 (例:カラー)全角 C列:バリエーション値 (例:ブラック)全角 D列:バリエーション品番 (例:-bk)半角英数 このとき、A列の値が同じでかつ、B列の値が同じ行の場合、 C列の値をつなげた値をE列に、 D列の値をつなげた値をF列に返したいです。 A列とB列が同じ値なら、E列、F列に入る値も同一で結構です。 ただ、つなげる際は値と値を半角コロンで区切る必要があります。 同じ値が何行並ぶかどうかは一定ではなく商品ごとに異なります。 VBAでも数式でも結構です。 よろしくお願いいたします。

  •  エクセル関数式により、ある値が二つの値の間にある条件の時に抜き出す方

     エクセル関数式により、ある値が二つの値の間にある条件の時に抜き出す方法。  初めまして。よろしくお願いします。  例) A B C D E F 1赤 2 5 1 2青 9 2 3 青 3黄 1 9 4 黄 4緑 3 4 2 5黒 8 4 9 6紺 2 5 4 紺 7橙 5 1 6 8 9  D列にある値がB列にある値とC列にある値の間に有る場合、A列に有る値をE列に抜き出す(例では2行目、3行目、6行目のDの値がBCの値の間に有るためにEのセルにAの値を表示される)関数式を教えていただきたく、よろしくお願いします。

  • 複数列を1列に表示させて追加する方法。

    どなたかご存じでしたらご回答をお願いします。 エクセルシートのA列~J列に値が入っており、それぞれの最終行に値を追加しております。 【質問】  A列~J列まで値の入ったエクセルシート(各種値)を別エクセルシート(纏め)のA列に  1つに纏め、エクセルシート(各種値)のA列~J列の最終行に追加されるたびに  エクセルシート(纏め)の最終行に追加する方法が知りたいです。 ●エクセルシート(各種値)  A   B  C  D  E  F  G  H   I   J                :  111 222 333 444 555 666 777 888 999 000  123 456 789 112 223 334 445 556 222 778 <= 最終行追加! ●エクセルシート(纏め)  A   :  111  222  333  444  555  666  777  888  999  000  123 <= A列最終行  456 <= B列最終行  789 <= C列最終行  112 <= D列最終行  223 <= E列最終行  334 <= F列最終行  445 <= G列最終行  556 <= H列最終行  222 <= I列最終行  778 <= J列最終行 【注意事項】   ・A列~J列に入っている値には同じ値が入る場合があります。(重複あり)   ・使用するエクセルは2010です。 以上、よろしくお願いします。    

  • エクセルで時間計算

    A1に日付、B1に時間 C1に日付、D1に時間が入っています。 例えば A1に6/20、B1に8:00 C1に6/21、D1に10:00 と入れた時に E1には26(経過時間) F1には1(経過日) G1には2(F1の経過日以降の時間) が表示されるには E、F、G1のそれぞれにどんな計算式を入れたら 良いですか?

  • 【関数】エクセルでの時間の計算

    いつもお世話になっております。 エクセルでの時間の計算に関する質問です。 下記のような30行ぐらいの表があり、A,B,C,D列は手打ち、E,F,G列は関数が入力されています。 この場合D2は空白ですが、両方に15ずつ入力されている場合もあります。  A  B  C D    E     F        G 8:00 8:30 30 _ =(B2-A2)*24 =(C2+D2)/60 =IF(E2=F2,"〇","×") 結果、判定をしたいG列が〇になったり×になったりしますが、それがなぜなのか教えてください。

  • 参照した数値を関数に代入し計算する方法

    手動で数字を入力するセル(C1)に入れた数字と同じ数字を 規則的に数字が書いてある(例;1~100)A列から探し A行の隣に書いてあるB行の数字(A1だったらB1)を 参照し関数の入っているセル(E1)にBの値を入れてExcelで 計算するような方法(マクロになるようなら貼り付ければできる形)を 教えて下さい(B1の値が直接使えないならD1というA行の隣から探した Bの数字を表示するセルを作る形でも可) 例えばC1に10といれA行から10と書かれているA6のセルを検索し その隣のB6のセルから20という数値を参照し、E1に書いてある 例えば=IF(X(B6)<45,Y(例;F1)*1.5,IF(45<X(B6),Y(例;F1)*2)) のような関数のXに代入する感じです(Y(F1)の数字は適当なセルの値) 上手く説明できていないかもしれませんが宜しくお願いいたします

  • 時間の比較

    String型の変数 a ~f  があるとします。 a = 時間1 b = 分1 c = 秒1 (a時b分c秒) d = 時間2 e = 分2 f = 秒2 (d時e分f秒) これら2つを比較して時間の早いほうを見つけようとしていますがなかなかうまくできません。 Dateクラス、Calenderクラス、TimeStampクラスいろいろ使って見たんですが・・ 何かいいアイディアありませんか? やはり一つ一つ時間同士、分同士比較していくのが一番手っ取り早いのでしょうか? いいメソッドなどあれば教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 同じ数字を見つける方法

    どなたかご存じでしたらご回答よろしくお願いします。 【質問】  エクセルシートA列~F列に数字が入っています。  A列の数字がG列~L列迄の数字のいずれかと同じ値の場合、  M列~R列に一致した値を出力する。これをF列まで繰り返し行う方法が知りたいです。  ◎エクセルシート A B C  D E  F  G  H  I  J  K  L  M  N O P Q R    4 19 20  27 28 14  5  15 18 20  23 28  20 28     5  9 15 19 30  9  5  9  18 22  24 25  5  9  <= A列~F列で9が重複     5  7 17  25 27 18  5  14 18 23  29 31  5  18  2  3 5 14 24  9   5  9 16  22  29 30  5  9   6 12 21 24 28 15  4  5  11 20  26 29    6  8 9 21 26  4   4  8  13 19  26 27  4  8  26 ●注意事項   ・”数字”とは1~31迄の数字の事です。   ・A列~F列の数字は重複する場合があります。   ・A列~F列の数字がG列~L列に存在しない場合があります。    その場合のM列~R列は空白です。   ・使用するエクセルは2010です。 以上、よろしくお願いします。

  • EXCELで、ある値で検索後、最大値を求める方法について

    EXCELで、ある値での最大値を求める方法がありますでしょうか?数日考えておりましたが結論はでませんでした。 どなたかヒントだけでも結構ですのでご教授頂けないでしょうか? 下記の場合、   A  B  C  D  E  F  G 1       あ  い         2    1  2  2.1    9.6 3    2  3  5.4    5.6    4    3  4  8.2    5.4    5    4  5  1.9    8.2    6    5  1  7.8    4.5    7    6  1  9.6     .    8    7  2  5.6     .    9    8  5  4.5     .    10    9  3  4.8        .    .  .   .         .    .  .   .         .    .  .   .         3000以上 B列の数値をもとにC列の中で検索させ、いくつか該当するとき、その右側のD列の最大値を求めることができるかどうか。 たとえば、B列の1の場合、C列の中で1が2箇所あり、その右側であるD列の値は7.8と9.6となります。そのうちの最大値は9.6ですので、F列の同行に答えとなる値が入ります。そのようなF列の関数等は無いでしょうか? 当方でもいろいろ調べ、DMAX関数が使えそうですが、B列の値が縦(列)となってる場合はうまくいきませんでした。もしB列の値が、縦(列)ではなく横(行)である場合は、OFFSET関数などと併せてうまくいきますが、最大256列(EXCELの制限)までしか扱えません。 何か方法があればヒントだけでも結構ですのでよろしくお願いします。

専門家に質問してみよう