-PR-
dadao

x軸に波長、y軸に光強度のデータを測定したのですが、測定の間隔を1nm刻み、0.5nm刻みの2種類のデータとしてしまいました。これを1nm刻みでそろえたいのでオートフィルタでそろえようと思いましたが、項目ありませんでした。整数のみ抜き取るマクロやVBAは何かありますか?よろしくお願いします。
  • 回答数5
  • 気になる数0
  • Aみんなの回答(全5件)

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

    • 2006-07-08 06:37:06
    • 回答No.5
    Sheet1の第2,4、6・・行をSheet2に抜き出すなら
    Sheet2のA1に =INDIRECT("Sheet1!A"&(ROW()*2))
    と入れて下方向に式を複写。
    B1は =INDIRECT("Sheet1!B"&(ROW()*2))
    第1,3,5、・・行なら
    Sheet2のA1は =INDIRECT("Sheet1!A"&((ROW()-1)*2)+1)
    です。
    ーーーーーーーーー
    規則性がなければ
    例データ A2:A10 に
    A列         D列(関数式の結果)-は判りやすくするため
    入れたもので実際にはない。
    1ー1
    2.31ー
    3.41ー
    4ー2
    5ー3
    6ー4
    7.1ー
    8ー5

    あき列をD列として、D列D2に
    =IF(A2="","",IF(MOD(A2*10,10)=0,MAX($D$1:D1)+1,""))
    で条件に合うものに連番が触れます。
    Sheet2に行って
    A1に 
    =INDEX(Sheet1!$A$2:$B$10,MATCH(ROW(),Sheet1!$D$2:$D$10,0),1)
    この式を下方向に複写する。(自称imogasi方式)
    結果
    1
    4
    5
    6
    8
    #N/A
    #N/Aの非表示は
    =IF(ROW()>MAX(Sheet1!$D$1:$D$10),"",INDEX(Sheet1!$A$2:$B$10,MATCH(ROW(),Sheet1!$D$2:$D$10,0),1))
    お礼コメント
    ありがとうございます。
    関数使い初めのものですので
    関数の意味を追っていって時間が掛かりました。
    大変勉強になりました。
    投稿日時 - 2006-07-08 17:20:18
    • ありがとう数0
    -PR-
    -PR-

    その他の回答 (全4件)

    • 2006-07-07 18:45:27
    • 回答No.3
    noname#204879

    私も No.2 さんの方法をお勧めします。 ただし、式は単に =MOD(A2,1) でOKです。(セル A1 は項目名が、セル A2 以降に測定値が、それぞれ入力されていると仮定) 安全のために式を =ROUND(MOD(A2,1),5) としておく方がベターかも。 式が返す値が 0 に該当する測定値が整数になっています。 ...続きを読む
    私も No.2 さんの方法をお勧めします。

    ただし、式は単に =MOD(A2,1) でOKです。(セル A1 は項目名が、セル A2 以降に測定値が、それぞれ入力されていると仮定)
    安全のために式を =ROUND(MOD(A2,1),5) としておく方がベターかも。
    式が返す値が 0 に該当する測定値が整数になっています。
    お礼コメント
    確かにそうですね。ありがとうございます。
    行と列を間違えて記載していたのにこの方法を使えば出来そうですね。ありがとうございました。
    投稿日時 - 2006-07-08 00:07:42
    • ありがとう数0
    • 2006-07-07 17:32:18
    • 回答No.1
    セルの書式設定でできませんか? おそらく四捨五入だと思いますが
    セルの書式設定でできませんか?
    おそらく四捨五入だと思いますが
    • ありがとう数0
    • 2006-07-07 17:39:07
    • 回答No.2
    あまり美しくない方法ですが A列 B列 0.5  y1 1.0  y2 1.5  y3 2.0  y4 3.0  y5 のときC1に  =IF(MOD(A1*10,10)=0,1,0) と入力して、それを下までコピーすれば整数の行は1になります。オートフィルタで1の行のみ抽出し、コピー&ペーストすれば求められると思います。 ...続きを読む
    あまり美しくない方法ですが

    A列 B列
    0.5  y1
    1.0  y2
    1.5  y3
    2.0  y4
    3.0  y5

    のときC1に
     =IF(MOD(A1*10,10)=0,1,0)
    と入力して、それを下までコピーすれば整数の行は1になります。オートフィルタで1の行のみ抽出し、コピー&ペーストすれば求められると思います。
    お礼コメント
    ありがとうございます。
    確かにこういう方法がありますね。
    いつもながら自分の観点の鈍さに辟易してしまいます。
    くれぐれもありがとうございました。
    投稿日時 - 2006-07-08 00:09:35
    • ありがとう数0
    • 2006-07-07 20:26:56
    • 回答No.4
    >測定の間隔を1nm刻み、0.5nm刻みの2種類 測定の間隔とセルのデータの整数・非整数とはどういう関係が有るのですか。ないはずです。 少数実例でも挙げて質問しないと、シートのセルの状況がわかりません。間隔を短くするデータが整数でなくなるなんてことは、一般的ではないでしょう。どちらも整数になる(する)場合もあり、ならない場合(有効数字)もあると思う。 ...続きを読む
    >測定の間隔を1nm刻み、0.5nm刻みの2種類
    測定の間隔とセルのデータの整数・非整数とはどういう関係が有るのですか。ないはずです。
    少数実例でも挙げて質問しないと、シートのセルの状況がわかりません。間隔を短くするデータが整数でなくなるなんてことは、一般的ではないでしょう。どちらも整数になる(する)場合もあり、ならない場合(有効数字)もあると思う。
    補足コメント
    おっしゃるとおりです。具体的な例を挙げて説明します。
    A列  B列
    400.5 5.23
    401  5.36 
    401.5 5.27
    402  6.35
    402.5 6.35
    .
    .
    .
    A列の数字が1000まで0.5刻みで続いています。
    データにするときはこの項目がじゃまなので
    A列が小数点の行を消去したいのです。

    A列  B列
    401  5.36 
    402  6.35

    自分の言いたいことはこうでした。
    言葉が足りませんでした。反省します。
    このようなデータがたくさんあるので何かいい手はないかと思った訳です。
    よろしくお願いします。
    投稿日時 - 2006-07-07 23:58:16
    • ありがとう数0
    • 回答数5
    • 気になる数0
    • ありがとう数1
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 知りたいこと、悩んでいることを
      投稿してみましょう
    このやり方知ってる!同じこと困ったことある。経験を教えて!
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

    その他の関連するQ&Aをキーワードで探す

    別のキーワードで再検索する
    -PR-
    -PR-
    -PR-

    特集


    成功のポイントとは?M&Aで経営の不安を解決!

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ