🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

502閲覧

Excel2016 行の位置が変わる特定のセルを基準にしてコピー範囲を決める方法

taira0318

総合スコア6

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2019/09/10 07:33

前提・実現したいこと

条件に合致するセル範囲を、別シートにコピーしたいです。

発生している問題・エラーメッセージ

次の例のようにデータがまとまっています。

イメージ説明

ここから、
A列の値が4となるときの、B値(今回だと15)を基準にして、基準値よりも大きい値
をB列中から抽出して、別シートにコピーしたいです。
(上の例では、B2~B399のデータを抽出して、別シートにコピーしたい。)

A列のデータは、0.01刻みとなっています。
ですが、1行目の値が今回のように0.01で固定でなく毎回違う値なので、
何行目で値が4となるかは不明です。

現在なかなか方針が立てられずにいます。
やりたいことを個別に分けると、

1.特定の数値(A列が4)の行番号を調べる
2.見つけた数値の一つ隣(15)を選択
3.同じ列で、その値より大きいものをすべて選択
4.別シートにコピー

という感じになります。
アプローチの仕方をご教授いただければ幸いです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2019/09/10 09:54

ループで処理するのが良いと思います。
guest

回答3

0

(1)B列を昇順ソート
(2)A列=4の行を上から順に検査(Match等でも可)
(3)検出した行以降をコピー

でどうでしょうか?

投稿2019/09/11 00:09

h.horikoshi

総合スコア505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

>アプローチの仕方をご教授いただければ幸いです。
一例ですが以下のように表現できると思います。

>1.特定の数値(A列が4)の行番号を調べる
→エクセルのMatch関数で何番目のデータかを検索し、セルを特定
>2.見つけた数値の一つ隣(15)を選択
→特定したセルの右隣りのセルの値を取得
>3.同じ列で、その値より大きいものをすべて選択
→オートフィルター機能で取得した値以上のものを抽出
>4.別シートにコピー
→オートフィルターの範囲をコピーし、別シートに貼付

このようになるので、
1つづつ解決して行ってください。

投稿2019/09/10 23:25

mattuwan

総合スコア2163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taira0318

2019/09/12 02:18

ありがとうございました!!
guest

0

ここまでできていたら、あとはコーディングするだけでは?
(マクロではなく数式だけでがんばろうとすると2.迄はなんとかなるけど...)

投稿2019/09/10 08:10

sage

総合スコア1240

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問