- ベストアンサー
EXCELで整数の列のみ抜き取る方法
x軸に波長、y軸に光強度のデータを測定したのですが、測定の間隔を1nm刻み、0.5nm刻みの2種類のデータとしてしまいました。これを1nm刻みでそろえたいのでオートフィルタでそろえようと思いましたが、項目ありませんでした。整数のみ抜き取るマクロやVBAは何かありますか?よろしくお願いします。
- みんなの回答 (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))
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
>測定の間隔を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 自分の言いたいことはこうでした。 言葉が足りませんでした。反省します。 このようなデータがたくさんあるので何かいい手はないかと思った訳です。 よろしくお願いします。
私も No.2 さんの方法をお勧めします。 ただし、式は単に =MOD(A2,1) でOKです。(セル A1 は項目名が、セル A2 以降に測定値が、それぞれ入力されていると仮定) 安全のために式を =ROUND(MOD(A2,1),5) としておく方がベターかも。 式が返す値が 0 に該当する測定値が整数になっています。
お礼
確かにそうですね。ありがとうございます。 行と列を間違えて記載していたのにこの方法を使えば出来そうですね。ありがとうございました。
- zap35
- ベストアンサー率44% (1383/3079)
あまり美しくない方法ですが 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の行のみ抽出し、コピー&ペーストすれば求められると思います。
お礼
ありがとうございます。 確かにこういう方法がありますね。 いつもながら自分の観点の鈍さに辟易してしまいます。 くれぐれもありがとうございました。
- ppg-2
- ベストアンサー率39% (77/193)
セルの書式設定でできませんか? おそらく四捨五入だと思いますが
お礼
ありがとうございます。 関数使い初めのものですので 関数の意味を追っていって時間が掛かりました。 大変勉強になりました。