-PR-

解決済みの質問

質問No.2261465
暇なときにでも
暇なときにでも
お気に入り投稿に追加する (0人が追加しました)
回答数5
閲覧数1763
EXCELで整数の列のみ抜き取る方法
x軸に波長、y軸に光強度のデータを測定したのですが、測定の間隔を1nm刻み、0.5nm刻みの2種類のデータとしてしまいました。これを1nm刻みでそろえたいのでオートフィルタでそろえようと思いましたが、項目ありませんでした。整数のみ抜き取るマクロやVBAは何かありますか?よろしくお願いします。
投稿日時 - 2006-07-07 17:06:57

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

回答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 06:37:06
この回答を支持する
(現在0人が支持しています)
お礼
ありがとうございます。
関数使い初めのものですので
関数の意味を追っていって時間が掛かりました。
大変勉強になりました。
投稿日時 - 2006-07-08 17:20:18

ベストアンサー以外の回答 (4)

回答No.4
>測定の間隔を1nm刻み、0.5nm刻みの2種類
測定の間隔とセルのデータの整数・非整数とはどういう関係が有るのですか。ないはずです。
少数実例でも挙げて質問しないと、シートのセルの状況がわかりません。間隔を短くするデータが整数でなくなるなんてことは、一般的ではないでしょう。どちらも整数になる(する)場合もあり、ならない場合(有効数字)もあると思う。
投稿日時 - 2006-07-07 20:26:56
この回答を支持する
(現在0人が支持しています)
補足
おっしゃるとおりです。具体的な例を挙げて説明します。
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
回答No.3
私も No.2 さんの方法をお勧めします。

ただし、式は単に =MOD(A2,1) でOKです。(セル A1 は項目名が、セル A2 以降に測定値が、それぞれ入力されていると仮定)
安全のために式を =ROUND(MOD(A2,1),5) としておく方がベターかも。
式が返す値が 0 に該当する測定値が整数になっています。
投稿日時 - 2006-07-07 18:45:27
この回答を支持する
(現在0人が支持しています)
お礼
確かにそうですね。ありがとうございます。
行と列を間違えて記載していたのにこの方法を使えば出来そうですね。ありがとうございました。
投稿日時 - 2006-07-08 00:07:42
回答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の行のみ抽出し、コピー&ペーストすれば求められると思います。
投稿日時 - 2006-07-07 17:39:07
この回答を支持する
(現在0人が支持しています)
お礼
ありがとうございます。
確かにこういう方法がありますね。
いつもながら自分の観点の鈍さに辟易してしまいます。
くれぐれもありがとうございました。
投稿日時 - 2006-07-08 00:09:35
回答No.1
セルの書式設定でできませんか?
おそらく四捨五入だと思いますが
投稿日時 - 2006-07-07 17:32:18
この回答を支持する
(現在0人が支持しています)
この質問は役に立ちましたか?
1人が「このQ&Aが役に立った」と投票しています
もっと聞いてみる

関連するQ&A

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

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

回答募集中

同じカテゴリの人気Q&Aランキング

-PR-

特集

背筋がゾクゾクする心霊体験を要チェック!

お城、ボート、ツリーハウス、ユニークな物件満載!

【期間限定】1ヶ月無料キャンペーン中!

このQ&Aの関連キーワード

同じカテゴリの人気Q&Aランキング

-PR-

ピックアップ

-PR-