質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • Excel

    1900questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

エクセルで任意の行を抜き取る

受付中

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 460

arduino

score 2

はじめましてエクセルのことで質問があります。

エクセルの行に
12:04:00
12:04:01
12:04:02
12:04:03
12:04:04
12:04:05
12:04:06
12:04:07
12:04:08
12:04:09
12:04:10
12:04:11
12:04:12
12:04:13
12:04:14
12:04:15
12:04:16



19:59:32
19:59:33
19:59:34
19:59:35
19:59:36
19:59:37
19:59:38
19:59:39
19:59:40
19:59:41
19:59:42
19:59:43

という風な時間の推移をしているのですが、1行目に12:04:00、56行目に13:04:00という感じに途中の行不定期に抜けているので3600でフィルターをしても何十秒から何分、数時間と言う風にずれてうまくいきません。このような場合、1時間ごとの時間の行を抜き出したいときにはどうしたら良いのでしょうか。コード等を教えていただけると幸いです。
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ttyp03

    2017/03/02 08:56

    もう少し詳しく、具体例などを交えて質問をお願いします。不定期に抜けている?3600でフィルターって?1時間ごとって何を基準に?時間の行を抜き出すって?どこに?

    キャンセル

回答 2

0

「抜き出す」ってのがよく分かりませんが

  Dim tmp As Variant
  For Each c In Range("a1..a29")
    tmp = Split(c.Text, ":")
    If tmp(0) = "12" Then
      MsgBox c.Text
    End If
  Next c


こんな感じ?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

ttyp03さんから修正依頼も出ていますが、質問文から読み取れない部分がいくつかあります。

①不定期に抜けている
⇒抜けていることがあるのなら抜けている例を出してもらえると分かりやすいです。
⇒そもそも「1行目に12:04:00、56行目に13:04:00」という例をあげていただきましたが、提示いただいた例のように1秒刻みでデータ採取されているのであれば13:04:00は3600行付近になりそうな気がします。
…途中が結構ごっそり抜けている??

②3600でフィルター
⇒連番をつけて3600で割り切れる行をフィルターしている?

③1時間ごとの時間の行を抜き出したい
⇒先頭行から1時間刻みなのか、13:00:00といった提示の情報が欲しいのか。
またその時間が抜けていた場合はどうするのか、といった情報も必要です。


とりあえず毎時0分0秒の情報を抜き出す方法をご紹介します。
VBAでならなんとでもできそうですが、今回はExcelタグでのご質問ですのでシート上でExcel関数で対処する方法をご紹介しますね。

まず前提として、時間データはA列2行目から入力されているものとします。
※フィルターをかけるようなので1行目は見出しと推測しました。

式の考え方はこうです。
・今回行の時間(HH)が1つ上の行の時間(HH)と異なる場合、今回行の時間を出力する
・それ以外の場合は何も出力しない(空欄)

これを式にすると

=IF(HOUR(A2) <> IFERROR(HOUR(A1),99), A2, "")


となります。
※IFERRORは1つ上の行が時刻セルでない場合(見出し行)にエラーとならないように記述しています。

この式をB2セルに入力し、対象データ範囲の全ての行にコピーします。
そしてB列を「空白以外のセル」を除いてフィルターすれば毎時0分0秒(なければその時間帯の最初の行)だけが絞り込まれます。

先頭行の時刻から1時間刻みとする場合は、先頭行との時間差を求めるため、もうひと手間必要になると思います。

お試しください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Excel

    1900questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。