• ベストアンサー

エクセルで、数値の境目を数えたい

やりたい事というのは、オシロスコープで取り込んだパルス波形のデータをCSV形式でPCに取り込み、そのパルス数をエクセルに数えさせる、というものです。 Hレベル5.0、Lレベルを0とすれば、非常に短い間隔で0.1と5.0を行ったりきたりするのですが、パルスを数えるのであれば0から5に変わった回数と5から0に変わった回数を数えれば事足りると考え得ました。 そこでたとえば、 ・A1~A10までが0.1(±0.3) ・A11~A20までが5.0(±0.3) ・A21~A30までが0.1(±0.3) (以下略) というように数値が入っているとして、 A10とA11、A20とA21のように、数値が急激に変化した場所の以外を残して削除する。もしくは、変化した回数をカウントしてそれが何回目に起きたのかをセルに書き込むにはどのようにすればよろしいでしょうか? マクロは全く触った事が無く、周りに詳しいものもいないのに急いでデータがほしいため質問しました。 よろしくお願いします。

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

  • ベストアンサー
  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.1

方法は幾つかあると思いますが、ひとつの例として・・・・ とりあえず、マクロではなく関数式を使って、 B2セルに、=IF(OR(A2-A1>1,A1-A2)>1),1,0) ←こんな式を入れておいて、B列の下方にコピーすると隣のA列のセルが、1つ上のセルとの間で差が1上になったときにB列に1を表示します。 こうすれば数値の変わり目がわかるので、あとはその表示された物を、 SUM や COUNTIF 関数で数えれば、変化の回数は数えられると思います。 増えた場合と減った場合を分けて数えるのなら、 B2セルに、=IF(OR(A2-A1>1,2,IF(,A1-A2)>1),1,0) ←こんな式にして、COUNTIF 関数で1と2をそれぞれ数えれば判ると思います。

forbiddendoll
質問者

お礼

ありがとうございます。 確かにこれでカウントはできました。 が、正確ではないようです。調べてみると、 パルスが立ち上がっている途中、つまり変化の最中を読むと (どうやら時折、5.0と0の間に3.3などといった数値が含まれるようです。) どうやら正確にカウントできなかったようです。 これは自分が提示した条件が悪かったせいですね。 申し訳ありません。 ですが、考え方としては非常に納得が行きました。 ありがとうございました。

その他の回答 (4)

noname#204879
noname#204879
回答No.5

forbiddendollさん、 皆さんはセッセと回答しておられますが、私にはどうしても質問の意味がサッパリ分かりません。 》 …急激に変化した場所の以外を残して削除する この「場所の以外を残して」とはどういうことですか? 例えば、下のA列のようなデータがあったとして、C列のようにすることですか?それともE列のようにすることですか? 》 …それが何回目に起きたのかを… 「それ」って何を指しますか?   A   B  C  D  E 1  0.1   -0.1   0.1 2  -0.1   4.7   -0.1 3  0.2   4.9   0.2 4  0.1   0.1   0.1 5  -0.2       -0.2 6  -0.2       -0.2 7  0.2        0.2 8  0.4        0.4 9  0.2        0.2 10 -0.1        5.1 11  4.7        5.2 12  5.1        5.0 13  5.2        5.3 14  5.0        5.2 15  5.3        4.9 16  5.2        5.2 17  4.9        4.8 18  5.2        0.3 19  4.8       -0.2 20  4.9        0.1 21  0.1        0.3 22  0.3       -0.1 23 -0.2       -0.1 24  0.1        0.2 25  0.3        0.0 26 -0.1        0.1 27 -0.1 28  0.2 29  0.0 30  0.1

forbiddendoll
質問者

お礼

》 …急激に変化した場所の以外を残して削除する >この「場所の以外を残して」とはどういうことですか? >例えば、下のA列のようなデータがあったとして、C列のようにす>ることですか?それともE列のようにすることですか? 私にはあなたの問いかけこそ理解できませんが? 例のつもりでなにやら数値を書いてありますが、C列もE列も一体何をもって数値を抜き出したのか説明も無いので何を思ってこの数値が取り出されたのか分かりません。 質問内容を見ていただければおおよそ分かると思いますが、 仮にA列に 1 0.1 2 -0.1 3 4.8 4 5.1 5 -0.1 と数値が入っていれば、1と3を取り出したいのですよ。あなたの例えのC列には4.7と4.9が入っていますが、これの何所が「急激な変化」なんですか? 》 …それが何回目に起きたのかを… >「それ」って何を指しますか? 正直、なぜこんな場で日本語の教育をしなければならないのか、全く持って理解できませんが説明しましょうか。 「A10とA11、A20とA21のように、数値が急激に変化した場所の以外を残して削除する。もしくは、変化した回数をカウントして[それ]が何回目に起きたのかをセルに書き込むにはどのようにすればよろしいでしょうか?」 とあり、疑問にされているのは[]ないのそれが何をさしているか?という事ですが。 この場合、[それ]がさすものは「急激に変化した場所」でしょう。確かに[変化した回数]ともとれますが、質問内容全体からどちらをさすかなんて少し考えれば分かると思いますが? >皆さんはセッセと回答しておられますが、私にはどうしても質問の意味がサッパリ分かりません。 分からないなら引っ込んでなさい。 むしろ私には、貴方にだけ日本語が通じなかった事のほうが分かりません。教えてくれますか?

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

信号処理などの門外漢なので、下記が使えるか質問者が考えて見てください。 B1:B12 0 1 0 1 0 0 1 0 0 1 0 0 0と1だが数字は何でも良い、直前の値と比べて変化した回数を勘定するつもり。 式として、 =SUM(IF(B1:B11>B2:B12,0,1)) と入れて、SHIFT、CTRL,ENTERの3つのキーを同時押しする。配列数式という。式の前後が{}で囲まれる。 結果 7 エクセルグラフを描くと突起が4つあることが判る。 一般的には尖点の高さは不揃い?かと思うが。 (結果+1)/2がピーク(微分計数の符号の変化のようなもの。尖り点)の数ではないかと思うがどうだろう。

forbiddendoll
質問者

お礼

ありがとうございます。 これをみて、いっそ数値を2値化すればいい事にきがつきました。 4.0以上なら1、それ以下は0とすれば、3.3などという電圧が変化していく最中にも対応でき、 その2値化した数値に対してNo.1の解答者の方法で変化した回数をカウントすれば問題なくパルス数を数えることができました! みなさんのおかげで非常に素早くほしい結果を得られる状態になりました。 ありがとうございました。

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.3

カッコがちょっとおかしかったようです。 B2セルに、=IF(OR(A2-A1>1,A1-A2>1),1,0) と =IF(A2-A1>1,2,IF(A1-A2)>1,1,0) こうでしたm(__)m

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

次の方法は如何でしょうか。 (1)データ表の先頭行に見出し行を挿入、仮にA1(データ)、B1(変化)、C1(発生回数) (2)B2に0を入力、B3に=(ABS(A2-A3)>4)*1を入力、B2のフィルハンドル(セル枠右下の■)をダブルクリック  ※差分を4としていますが任意の値に調整して下さい。 (3)C2に=ROW(A1)を入力、C2のフィルハンドルをクリック (4)データ→フィルタ→オートフィルタ→B列のフィルタ矢印ボタンを押下、1を選択して抽出セル範囲をコピーして別シートに形式を選択して貼り付け→値を選択して貼り付け

関連するQ&A

  • Excelで数値の変化をカウントしたいです。

    セルの数値が変化した時にカウントする事は出来るでしょうか? 例えば、 セルA1の値が100→103→102→106→107の順に変わった時は、 数値が上に変化した回数の3と 数値が下に変化した回数の1を知りたいです。 セルA1は固定で自動的(マクロで)に変化してます。 データは常に取り込んでいて、時間は不規則に変化します。 宜しくお願いします。

  • オシロスコープのTIFFファイルで保存した画像について

    オシロスコープでの波形をTIFFファイルとして保存したデータを数値化(CSVファイルなどの形式)したいのですがよい方法はないでしょうか??こちらの不手際でCSVファイルの保存を忘れてしまったので何とか数値化したいのですが・・・よろしくお願いします。 使用したオシロスコープはAgilent Technologies社のAgilent 54621Aです。

  • PWM波形をAM波形に変換するツール(ソフト等)

    オシロスコープはYOKOGAWAのDLM2024を使用しています。 マイコン制御で出力されているPWM波形をオシロスコープで表示させています。 また、オシロスコープのデーターをUSBメモリへwdf形式、csv形式でUSBメモリへ保存し、 PC上でエクセルを使用してグラフ表示ができています。 ここで、PWM波形では変化がわかりにくいので、これをAM波形に変換したいと考えています。 1.オシロスコープからのPWM波形のデーターファイルを読み込ませてAM波形を表示するようなソフトを探しています。 2.その他の方法でもかまいませんので、PC上でこれを行う方法(エクセルのマクロ等で可能であれば)。 3.オシロスコープ上の設定でオシロスコープへ表示する方法。 いずれかをご存知でしたらお教えください。 番号の小さい順に希望しています(1番が見つかれば助かります)。

  • エクセルで連続した数値と0が何回出たかをカウントする

    エクセルで連続した数値と0が何回出たかをカウントする エクセルで連続した数値と0が何回出たかをカウントする エクセルでONとOFFを時系列で数値(ON)と0(OFF)で表しており、 ONになった回数を数えたいと思っています。 例)下記の数字がA1~A20に入っている   0 0 0 5 0 0 7 1 8 0 0 2 7 0 0 0 3 5 7 0  数値がON、0がOFFなので、ONになった回数は4回 このような処理をエクセルで行うには どのような方法がありますでしょうか? ご教示いただきたく、よろしくお願いいたします。

  • 任意の数値の次に来る数値をカウントしたいです。

    エクセルにて任意の数値の次に来る数値をカウントしたいです。 次のようなデータがあります。 【A1セル】【A2セル】 A , 9 A , 8 A , 1 A , 5 A , 2 B , 1 B , 6 B , 1 B , 5 B , 2 この場合、例えば"1"の次に来る数値をカウントすると A2セル"1"の次に来ている数値は、"5","6","5"つまり"5"が2回、"6"が1回とカウントしたいです。 また、フィルター機能を利用した場合も自動的に数値が変化するように出来れば嬉しいです。 (Bでソートかけた場合、1の次に来る数字"5"が1回、"6"が1回といった具合に) 仕事上、突然上記の内容で処理をしなければならなくなり 大変困っております・・・。 ご教授頂ければと思います・・・。

  • TTLとCMOS信号の見分け方

    デジタル回路を勉強している者です。TTLとCMOS信号について質問があります。 あるパルス波形がTTLかCMOSレベルかを判断する際、この波形をオシロスコープで確認すると、0- 5Vのパルス波形で、スレッシュレベルもTTLとCMOSどちらも満たしていたとします。この場合、この波形はTTLとCMOSどちらの信号といえるのでしょうか?もしくは、どちらの信号としてもいいのでしょうか?

  • エクセルでの列データ操作について

    例として、A1からA1000まで数値データがあったとします。そこからA1のデータをB1にA5のデータをB2へA10のデータをB3といったようにA列のデータを3とか5といったように任意の数で等間隔のデータをB列に順に貼り付けたいのですが、何か良い方法がありますか?出来れば関数でまかなえれば大変助かります。 マクロに関しては知識が乏しいので厳しいです。ポイントとして、任意の等間隔(数式の中で数値を入れ替えれる)で間隔を変更出来る様にしたいです。 ご教授よろしくお願いします。

  • エクセルで重複するセルの出現回数を数えたい

    エクセル2003である列で重複するセルの出現回数を別の列にカウントするマクロの書き方を教えて下さい. 具体的には以下の通りです. A列が実データで,B列に出現回数をカウントする例. A列   B列 12345   33456 12345 99999 12345 ・ ・ ・ に対してマクロ実行すると, A列   B列 12345  1   33456 1 12345 2 99999 1 12345 3 ・ ・ ・ 大体1000行ほどのデータがあります. よい方法があれば教えていただけると大変ありがたいです.

  • H8マイコンでのカウントタイマー動作

    H8 3052Fのituを使ってラップカウントは出来るでしょうか? あるパルス信号をTCNTでカウントする時にカウント動作を止めないで その時のカウント数を読み出す事は出来るでしょうか? パルス波形と正弦波の2つの信号波形があって、パルス信号をあるタイミングからカウントしていき、それと同時に正弦波の電圧をサンプリングして行った場合に、電圧を測定したPOINTのパルス波形のカウント数を調べたいです。 計測する期間は約2mSで、この期間内でなるべく多く正弦波の電圧をサンプリングしたいのですが、マニュアルを読んでもTCNTの動作、停止しか書いてないみたいでよく分かりません。 ご存知の方がいらっしゃいましたら教えて下さい。

  • パルスオキシメータの自作

    パルスオキシメータの自作 パルスオキシメータを自作しています。オシロスコープでRとIRの波形が得られたんですが、 原理としてはR/IR比から%spo2が求められるらしいんですが、どんな計算をすればいいかわかりません。どうしたらこのデータから%spo2が求められるのでしょう?お願いします。

専門家に質問してみよう