エクセルVBAでデータの一部を取り出す方法について教えてください
- エクセルVBAを使用して、データの一部を抽出する方法について教えてください。
- 具体的には、A列の番号に基づいて連続する件数分のデータを抽出する方法を知りたいです。
- 例として、F2セルに該当する番号から連続する件数分のデータを抽出し、A2:C4の結果を得たいと考えています。
- ベストアンサー
エクセル VBAについて教えてください
データの一部分を取り出す方法について教えてください。 A B C D E F ------------------------------------------ 1 1 北海道 札幌 先頭 2 2 2 青森県 青森 件数 3 3 3 岩手県 盛岡 4 4 秋田県 秋田 このようなデータがあります。 A列の番号において「F2セル」に該当する番号から 連続する件数分だけ抽出したいのですが、どのようにすればできますか。 結果としては「A2:C4」を抽出したいのです。 いろいろ検索しましたが探すことができませんでした。 どうぞよろしくご教授ください。
- asdf2356jp
- お礼率80% (4/5)
- Visual Basic
- 回答数4
- ありがとう数3
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>結果としては「A2:C4」を抽出したいのです。 ⇒どこに抽出するか不明なので該当範囲をコピーまでとしています。 因みに入力条件のエラーチェックは考慮していません。 Set pos = Range("a:a").Find(Range("f1"), LookAt:=xlWhole) If pos Is Nothing Then End pos.Resize(Range("f2"), 3).Copy
その他の回答 (3)
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答2です。シート2のA2セルに入力する式は次の式に訂正してください。 =IF(COLUMN(A1)>3,"",IF(ROW(A1)>Sheet1!$F$2-Sheet1!$F$1+1,"",INDEX(Sheet1!$A:$C,MATCH(Sheet1!$F$1,Sheet1!$A:$A,0)+ROW(A1)-1,COLUMN(A1))))
お礼
ありがとうございました。 各セルに数式を入れる場合の参考にさせていただきます。 今後ともよろしくお願いします。
- KURUMITO
- ベストアンサー率42% (1835/4283)
元のデータがシート1に有るとします。 抽出のデータをシート2に表示させるとしたらシート2のA2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(COLUMN(A1)>3,"",IF(ROW(A1)>Sheet1!$F$2-Sheet1!$F$1+1,"",INDEX(Sheet1!$A:$C,MATCH(Sheet1!$F$1,Sheet1!$A:$A,0),COLUMN(A1))))
- qualheart
- ベストアンサー率41% (1451/3486)
F1セルが抽出したい先頭行を指し、F2セルが抽出したい行数を指しているということですよね。 抽出後の処理をどうしたいのか良く分かりませんが、F1とF2の値から取得したい範囲を選択するのであれば、 '先頭行 s = Cells(1, 6) '最終行 l = s + Cells(2, 6) - 1 Range(Cells(s, 1), Cells(l, 3)).Select で、OKです。 ご参考まで。
お礼
早々の回答ありがとうございました。 質問の仕方が悪くて済みません。 先頭行で選びたいのは、エクセルシートの行ではなく A列に記載の番号を探してその行から件数分を選択したいのです。 今回の例ではA列に1,2,3,4と記載していますが、 実際は1001,1002,1003,1004と番号が入っており たとえば先頭行は1002から3件分という風に選択したいのです。 どうぞよろしくお願いします。
関連するQ&A
- エクセルVBAで、指定した文字列間のデータをコピー
似たようなものがあるのですが、うまくいかないため、 詳しい方お願いします。 指定した2種類の文字列間のデータをコピーするエクセルVBAです。 データは、A1~A50の1列に入っています。 たとえば 北海道:札幌50 函館 20 青森 青森60 弘前30 岩手 盛岡50 rt 500 30 秋田 秋田1 と続きます。 「青森という文字列以降」から「岩手という文字列の前まで」の間のデータ をコピーして、Sheet2へ貼り付けたいです。 可能であれば、青森のデータは、Sheet2のA5,A6へ 岩手のデータはSheet2のA8,A9へ貼り付けたいです。 よろしくお願いします。 エクセル2007です。
- ベストアンサー
- オフィス系ソフト
- エクセルで並べ替えて比較をしたいのですが。
エクセルで並べ替えて比較をしたいのですが。 現在データの集計を行っているのですが、データ(仮に都道府県名としておきます)比較をするに際して シートAにあるデータとシートBにあるデータが必ずしも全て一致するわけではなく、 シートAは47都道府県全てのデータがあり シートBには所々データが抜けていて順番もAとは全然異なる配列で並んでいます。 この際にシートBのデータをシートAのデータの順番に並び替え一つのシートにし、データの分析を行いたいのですが、シートBの並べ替え方がわかりません。是非教えてください。よろしくお願いします。 変更前 シートAシートB 県名|顧客数 県 名|a|b|c 北海道|156 秋田県|1|5|4 青森県|283 | | | 岩手県|384 岩手県|2|6|4 宮城県|294 福島県|4|6|4 秋田県|148 | | | 山形県|54 青森県|3|5|1 福島県|213 宮城県|1|2|2 変更後 シートAシートB 県名|顧客数 県 名|a|b|c 北海道|156 青森県|283 青森県|3|5|1 岩手県|384 岩手県|2|6|4 宮城県|294 宮城県|1|2|2 秋田県|148 秋田県|1|5|4 山形県|54 福島県|213 福島県|4|6|4
- 締切済み
- オフィス系ソフト
- エクセルVBAのチェックボックスを使った検索
当方、VBA初心者です。 使用しているソフトは、エクセル2007です。 都道府県別で会社検索ができるものを作りたいと考えております。 内容は、ユーザフォームに都道府県別のチェックボックスを作っております。 その都道府県をチェックすると オートフィルタ機能でチェックした都道府県をシート上に抽出するものです。 以下が理想とするイメージです。 会社名 住所 aaa 北海道釧路市1-1 bbb 青森県八戸市2-2 ccc 岩手県盛岡市3-3 ↓※北海道と青森県をチェックした場合 会社名 住所 aaa 北海道釧路市1-1 bbb 青森県八戸市2-2 しかし、北海道と青森県をチェックしても、抽出されるのは青森県だけになります。 どのようにしたら、チェックした都道府県をすべて表示できるようになるのでしょうか。 以下が現在のイメージです。 会社名 住所 aaa 北海道釧路市1-1 bbb 青森県八戸市2-2 ccc 岩手県盛岡市3-3 ↓※北海道と青森県をチェックした場合 会社名 住所 bbb 青森県八戸市2-2 以下が現在作成しているものです。 ---- Private Sub CommandButton1_Click() Unload Me End Sub ---- Private Sub CommandButton2_Click() If CheckBox1.Value = True Then Selection.AutoFilter ActiveSheet.Range("$A$5:$O$1677").AutoFilter Field:=10, Criteria1:="=*北海道*" _ , Operator:=xlAnd End If If CheckBox2.Value = True Then Selection.AutoFilter ActiveSheet.Range("$A$5:$O$1677").AutoFilter Field:=10, Criteria1:="=*青森県*" _ , Operator:=xlAnd End If End Sub ---- お手数ではございますが、どうがご教授をお願いいたします。
- 締切済み
- その他MS Office製品
- テーブルから指定した文字数を抽出し更新したい
はじめましてこんばんは。 accessで下記のようなことをしたいのですがアドバイスをいただけないでしょうか。 件数 地域 店舗名 住所 市名 1 北海道 ○×店 札幌市○×区1-1 2 北海道 ××店 札幌市××区2-2 3 北海道 △△店 札幌市△△区3-3 4 北海道 ○○店 札幌市○○区2-1 5 北海道 ×○店 札幌市×○区1-4 6 北海道 △×店 札幌市△×区3-2 7 北海道 ○△店 札幌市○△区1-1 8 北海道 ○×店 旭川市○×1-2 9 北海道 ××店 旭川市××4-2 10 北海道 ○×店 小樽市○×3-3 11 北海道 ○○店 北見市○○4-4 12 青森県 ○×店 青森市○×1-1 13 青森県 △△店 八戸市△△2-2 14 青森県 ○×店 八戸市○×5-5 15 岩手県 ××店 盛岡市××2-3 16 宮城県 ○×店 仙台市○×区3-3 このようなテーブルがあり住所の欄から最初の3文字を抽出し 市名の欄に○○市というように抜き出してテーブルを更新したい。 市名を抽出する際の条件として市名は3文字限定 「市」以外に「区」もあるというのは考慮する必要はありません。 クエリを使い札幌市を含むテーブルを抽出することはできたのですが 住所から3文字抽出しその結果を同じテーブルの市名の欄に 書き込むことができませんでした。 どなたかアドバイスをいただけないでしょうか?宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- excelで標準偏差の出し方
excelで標準偏差を出したいです。 下のような市区町村別のデータが書いてある表があり、各都道府県別の人口の標準偏差を出したいです。 A B C(ここに人口のデータ) 1北海道 ○○市 2北海道 ○○市 3北海道 ○○市 4北海道 〃 5北海道 〃 6青森県 〃 7青森県 〃 8青森県 〃 9青森県 〃 10秋田県 〃 11秋田県 〃 12秋田県 〃 13秋田県 〃 ・ ・ ・ 「=STDEVP(C1:C5)」などと都道府県ごとにやるのでは手間がかかってしまうため、例えば北海道のデータを入力すればあとはそれを下にドラッグすればすべてのデータが正しく出るようにしたいです。 IF関数を使うのかと思ったのですが、いまいちやり方が分かりません。 excelに詳しい方、教えていただければ幸いです
- ベストアンサー
- Excel(エクセル)
- 読点の打ち方
(1)私は北海道、青森、岩手、秋田、宮城に行ったことがある。 (2)私は北海道と、青森、岩手、秋田、宮城に行ったことがある。 (3)私は北海道と、青森と、岩手と、秋田と、宮城に行ったことがある。 (4)私は、北海道、青森、岩手、秋田、宮城に行ったことがある。 (5)私は、北海道と、青森、岩手、秋田、宮城に行ったことがある。 (6)私は、北海道と、青森と、岩手と、秋田と、宮城に行ったことがある。 (7)私は、北海道、青森、岩手、秋田、宮城に、行ったことがある。 (8)私は、北海道と、青森、岩手、秋田、宮城に、行ったことがある。 (9)私は、北海道と、青森と、岩手と、秋田と、宮城に、行ったことがある。 (10)私は北海道、青森、岩手、秋田、宮城に、行ったことがある。 (11)私は北海道と、青森、岩手、秋田、宮城に、行ったことがある。 (12)私は北海道と、青森と、岩手と、秋田と、宮城に、行ったことがある。 読点の付け方はどれが正しいですか? 都道府県の部分は「、」ではなく「・」の方がいいでしょうか? 「青森、岩手、秋田、宮城」ではなく「青森・岩手・秋田・宮城」の方がいいでしょうか?
- 締切済み
- 日本語・現代文・国語
- Excel オートフィルタで抽出&追加 VBA
いつもお世話になっております。 VBAで、データベースのようなものを作っています。 A B C D E F 1 あ 北海道 2 い 北海道 3 う 北海道 4 え 北海道 5 あ 青森 6 い 青森 7 う 青森 8 え 青森 9 あ 東京 10 い 東京 11 う 東京 12 え 東京 このような感じのデータが並んでおります。 A列が人名で、B列がその人のデータになります。 ここに、新しいデータを追加するプログラムを組みたいと思っています。 例) お を追加する場合 A B C D E F 1 あ 北海道 2 い 北海道 3 う 北海道 4 え 北海道 5 お 北海道 6 あ 青森 7 い 青森 8 う 青森 9 え 青森 10 お 青森 11 あ 東京 12 い 東京 13 う 東京 14 え 東京 15 お 東京 このようにデータを追加したいと思っています。 B列の項目数、また、A列の人名も大量にあります。 手作業でやろうにも物凄い時間がかかり、 今後もこの作業が多くなるとのことなので、プログラムを作りたいと思いました。 私の考えですが、 1.B列の重複しないデータ(例なら北海道、青森、東京)を抽出 2.抽出した項目でフィルタをかけ、そのなかの1行コピー そして、その最終行を取得 3.最終行+1?にコピーしたデータを挿入 4.コピーされた部分のA列部分を変更 これを何度も繰り返すとできるかな?と思ったのですが やはり面倒な作業を繰り返しているようにも思えます。 何か良い方法はありませんか? 私の出した案のように地道にやっていくしかないのでしょうか… 回答よろしくお願い致します!
- ベストアンサー
- Excel(エクセル)
- エクセルのfind関数で、複数の条件
エクセルで、住所に"北海道"が含まれていると、"北海道"と表示し、 "青森県"や"岩手県"などが含まれていると、"東北"と表示したいです。 以下の関数を作ったのですが、北海道のときは想定どおり"北海道"と表示されますが、 それ以外のときは#VALUE!になってしまいます。 どこが悪いでしょうか? =if(find("北海道",A1)>0,"北海道",if(find("青森県",A1)>0,"東北",if(find("岩手県",A1)>0,"東北",if(find("宮城県",A1)>0,"東北",if(find("秋田県",A1)>0,"東北",if(find("山形県",A1)>0,"東北",if(find("福島県",A1)>0,"東北","該当なし")))))))
- ベストアンサー
- その他MS Office製品
- Excelの連続データから数行おきのコピー
ExcelのSheet1に連続したデータが入っています。 Sheet2はSheet1の内容を参考にしてレイアウトを変えていますが、 Sheet1で入力してある項目を参照して表示したいです。 コピーには規則性があるので、Sheet2を2項目だけ入力した後、 オートフィルで、一発で全部コピーしたいです。 VBAではなく、Sheet2に書くべき関数のコードを教えてください。 よろしくお願い致します。 ------------------------------- 連続したデータがSheet1に大量に入っています。 例 A B C 1 北海道 札幌市 メロン 2 青森県 八戸市 りんご 3 岩手県 盛岡市 冷麺 以下、多数あり。 Sheet2に、 A B C 1 北海道 札幌市 メロン 2 3 4 5 青森県 八戸市 りんご 6 7 8 9 ※ここから下をオートフィルのコピーで表示したい
- ベストアンサー
- オフィス系ソフト
- エクセル 2つのシートの抽出
シート1 コード|地域|住所 0001|青森A|青森県青森市○丁目○-○ 0002|青森D|青森県青森市×丁目×-× 0003|岩手B|岩手県岩手市○丁目○-○ 0004|岩手D|岩手県岩手市×丁目×-× シート2 コード|(住所を抽出したい) 0003| 0001| シート1は一覧表で、シート2は今回の対象だとします。 シート2のコードとシート1のコードが一致したら、 シート2のB列にシート1の住所を抽出したいのですが、どのような方法があるのでしょうか?教えて下さい。
- 締切済み
- オフィス系ソフト
お礼
大変ありがとうございました。 やりたいことができました。 今後ともよろしくお願いいたします。