• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excelで、ある条件に対し正なら行を削除したい)

Excelでデータを間引きしてグラフ作成する方法

KURUMITOの回答

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

マクロが適当であると判断しているようですがやさしい関数を使った処理がはるかに計算速度が早いのです。 例えばA2セルから下方に時間が12:34:56のように入力されておりB列に測定結果が有るとします。 C列を作業列としてC2セルには次の式を入力します。 =IF(A2="","",IF(MOD(SECOND(A2),30)=0,MAX(C$1:C1)+1,"")) C2セルを右クリックして「コピー」したのちに名前ボックスでC2と表示されている窓をC2:C30000と変更して確定します。 それらのセルが選択状態となりますので右クリックして「貼り付け」を行います。 その後にお求めの表をEおよびF列に表示させるとしたらE2セルには次の式を入力してF2セルまでおラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>MAX($C:$C),"",INDEX($A:$B,MATCH(ROW(A1),$C:$C,0),COLUMN(A1))) E列にはシリアル値が表示されますのでセルの表示形式を時刻から選択してください。

feytaso
質問者

お礼

回答ありがとうございます。 とりあえずマクロ…と思い込んでいました。 こういった関数も使っていけばいいのですね。 とても勉強になりました。

関連するQ&A

  • 整数行を残し小数点の行を削除するには?

    エクセルで整数行を選びそれ以外を削除することが出来ますか? C列に測定時間があり、整数秒のみ取り出すマクロを作成しようとしているのですが、わかりません。 教えていただきたいのです。詳しい方よろしくお願いします。

  • 65000セルを越えるCSVをExcelでグラフを書かせたい

    測定器からCSV変換され、そのデータを元にグラフを書いています。 解析するため、エクセルでグラフを書かせるのですが、何せ、時には65000セルを超える量であり、もはやエクセルではグラフ化できない状況にあります。 10msごとに変換されてくるCSVデータを後からマクロ等で、50ms,100ms・・・と少し間引きをし、65000セル以内におさめ、何とかグラフを書ける様にしたいと思ってます。 やり方教えて頂けないでしょうか? お願い致します。

  • VBAのデータ抽出(間引き)について

    VBAのデータ抽出(間引き)について 当方VBA初心者なのですが、 VBA(EXCEL2007)を使用してグラフ作成をしようと思っています。 元データの書式は以下の通りでデータ行は30秒間隔で 一カ月分(8万行)あります。 2010/08/01 01:00:34     1112.83 2010/08/01 01:01:04     1110.43 2010/08/01 01:01:34     1111.87 2010/08/01 01:02:04     1112.23 2010/08/01 01:02:34     1112.43 2010/08/01 01:03:04     1112.03 2010/08/01 01:03:34     1110.83 2010/08/01 01:04:04     1112.43 2010/08/01 01:04:34     1110.63 ・・・ データ量が多すぎるので間引きしようと思っています。 間引き(抽出)条件は以下の様に考えています。 10行毎(5分毎)に値の最大値の行を抽出して別シートへコピー。 VBAマクロで処理するにはどの様な コードで実現可能でしょうか? 教えて頂きたく。よろしくお願いします。

  • マクロで行を削除するには?

    Windows NTでExcel 2000を使っています。 あるデータベースがあって、ある条件で空白の行を3行挿入して区切りを入れ、 その2行目にデータの合計を出した表に対して行う作業なのですが この挿入した行を全て消して元の表に戻したいという場合には どうしたらよいのでしょうか。 私の思いつきですが、範囲指定した後に 「もしA1が空白の時にはその行全体を削除する。もしA2が…(以下同文)」 というマクロが書ければ可能なことだと思います。 ちなみに「データベースのコピーで合計作業をすれば」というのは こちらの都合上、無理と判断しているので これ以外でよい方法があれば教えてください。 よろしくお願いします。

  • 小数点以下2桁ある数字の列削除

    この1個前で質問させて頂きましたが、上手く伝わりませんでしたので、今1度説明させて頂きます。 0~6000秒間で、タンク内にガスを注入し続けて、圧力の変化を観察しました。 ※圧力の変化については、ここが本題では無いので無視して下さい。 時間は、0秒▶︎0.01秒▶︎0.02秒▶︎0.03秒…と順々にカウントして、6000秒まで測定を行いました。 測定データをExcelのA行に時間(秒)、B行に圧力値を記入しまとめました。 そこから、グラフを作っていくのですが、ちょっとExcelを触ろうとするならば、フリーズしてしまいます。 そこで、時間の数値で、小数点以下2桁を持っている数字は全て削除したいです。 例)0.01、20.59、300.45、1000.67等を消去。0.1、10.2、300.5、100.1は残したい。 です。 一気に整理する方法を教えて下さい。

  • エクセルマクロで行挿入

    エクセルマクロで行挿入 マクロ初心者です。 仕事で、受注した内容をエクセルで管理しているのですが、頻繁にキャンセルや日程変更があり、1日単位でデータを管理しているものですから、かなりデータ入力に労力が取られている状況です。 キャンセルや日程変更になったデータに関しては、行ごと削除するのではなく、行単位で取り消し線と文字を赤にして、見た目で無くなったということがわかるようにしています。 また、受注したら行を挿入して新しいデータを入力しています。 そこで、赤字で取り消し線にて入力されている行の一つ上の行に挿入、ということをマクロでできないかと思っています。 赤字に取り消し線の行に関しては、何行目になっているかはその日によって違うので、その指定と、書式を指定する方法がわからない状況です。 マクロで上記のことができるのであれば、ご教授いただけると助かります。 宜しく御願いいたします。

  • 任意の整数まで欠番行を挿入するマクロは?

    エクセルのSheet1のA列の1行目から下の行へ1から1000まで数字(整数)が入っているとします。ただし、欠番があります。そこで、欠番を挿入して行を増やしたいのですが、すべての整数を挿入するには以下のマクロで解決しているのですが、任意の整数(下二桁が同じ整数)まで挿入したら次の桁へ飛んで、また同じ任意の整数(下二桁が同じ整数)まで来たら次の桁へ飛んでという具合に、これらを繰り返したいのです。例えば、1から46まで、100から146まで、200から246まで、300から346までという具合です。どなたかご教授よろしくお願いします。 Sub 欠番挿入() Dim i As Integer i = 0 Do Until ActiveSheet.Range("a2").Offset(i, 0).Value = "" ActiveSheet.Range("a2").Offset(i, 0).Activate If ActiveCell.Value <> ActiveCell.Row Then Rows(ActiveCell.Row).Insert ActiveSheet.Range("a2").Offset(i, 0).Value _ = ActiveCell.Row End If i = i + 1 Loop End Sub

  • エクセルでデータの間引き

    エクセルでグラフの作成をしようと試みたところデータ数が 10000程あったため途中までのデータしかグラフ化されません。 そこで、データを10あるいは100行おきに間引きをしてグラフの作成を行いたいのですが、エクセル上で簡単にこのような操作を行うためにはどのようにすればよいのでしょうか? 宜しくお願い致します。

  • エクセルで行の挿入などだんだん動作が遅くなってきます。

    大きなエクセルファイルを開いています(2Mほど)。 そのファイルを開いてすぐの状態だと、行の挿入を行っても ほとんど時間がかからずできるのですが、 何度か挿入を繰り返しているうちに挿入の動作がとても重くなってしまいます。 (数十秒はかかるようになります。) 原因を考えてみてもよくわからず、再計算を手動に 切り替えるなどしてみたのですが変わりませんでした。 Undo用のデータが大きくて時間がかかっているのかな~とも思いましたが どうしていいかわかりません。 このようにEXCELの動作に時間がかかるようにならないためには どのような方法があるでしょうか?

  • excelのマクロで条件による行の挿入

    列AとBがあり列Aに学校のクラス名A組、B組、C組・・・(20クラスほど)と氏名が 入るエクセルシートがあるのですが 先頭行はA組から始まり5行区切りで数え、(A組も5行のうちに入る) その5行内に次のB組が入らないように空白行を挿入したいです もし、5行以内にB組がない場合、次の5行でまたB組があるか判定しなければ氏名5つ あれば空白をいれてというのを20クラスぶん作るマクロは可能でしょうか? VBAの知識がさっぱりないので途方にくれています。 元のデータの例   マクロ実行後 列A   列B      列A   列B A組           A組   氏名1 111      氏名1 111  氏名2 222      氏名2 222 B組           空白行挿入 氏名3 333      空白行挿入 氏名4 444      B組 氏名5 555      氏名3 333 氏名6 666      氏名4 444 氏名7 777      氏名5 555 C組 氏名6 666              氏名7 777              空白行挿入              空白行挿入              空白行挿入              空白行挿入              C組