- ベストアンサー
VBAで一定期間の名簿を検索、抽出できますか?
-yellowtail-の回答
簡単にできると思います! 単純に考えれば、Aファイルを1行ずつループで回して行き、日付をFindでBファイルのSheet1から探します。見つかればSheet2にコピー。 その場合Sheet2の貼り付け行はEndで取るか、貼りつけるごとに変数をインクリメントでOKだと思います。 また日付が日付形式ならまずSortして期間の分だけコピーした方が早いと思います。 ソートしたあと、日付の抜けがないならFindで初日と最終日を探し、抜けがあるならループで回して初日より大きくなる日を探すというのでどうでしょう? 指定する日が連続でないなら、最初の方法が良いかなと思います。 他に良い方法があるかも知れませんが、3000件ならループで回しても時間はそんなにかからないと思います☆ えーと・・・ Dim y as integer dim i as integer dim tmp as range y=1:i=1 do set tmp=workbooks("B").sheets(1).rows(2).find(workbooks("A").sheets(1).cells(y,1),lookat:=xlwhole) if not tmp is nothing then Workbooks("B").sheets(2).cells(i,1)=workbooks("A").sheets(1).cells(y,1) '~略~ i=i+1 end if y=y+1 loop until y=workbooks("A").sheets(1).range("A65536").end(xlup).row 上記コードはちょっと適当だけど、こんな感じでどうでしょう?
関連するQ&A
- VBA Excel 名簿を検索
Excel2013です。 別シートに名簿、作業用シートで名前を検索する、別シートにある名簿から検索された名前を選択すると、その名前の住所や電話番号が作業用シートに表示出来るようにしたいのですが、どなたかVBに詳しい方教えて下さい。 出来れば、名簿に無い場合は新規に登録出来たり、変更があったりしたら編集も出来て、重複してる場合は削除などが出来ればいいのですが。
- 締切済み
- Visual Basic
- 2件のエクセル・ファイルの違う箇所を簡単に検索する方法は?
名前・住所・〒番号・電話が殆んど同じ件数の名簿A・B2件があります。(A=500件 B=490件) エクセル・ファイルの形式は全く同じです。 A・Bのファイルの名前・住所・〒番号・電話の相違箇所の簡単な検索方法はありませんか?
- ベストアンサー
- Windows XP
- エクセルVBAでできますか?
以前ここでこんな質問をさせていただきました。 ________________________________________________ エクセルで台帳を作成するため、sheet1に次の通り情報を入力しました。 A B C D 1 日付 名前 住所 申請事由 2 1/1 甲川 東京都 1 3 1/2 乙本 大阪府 1 4 1/2 丙藤 北海道 2 5 2/1 甲山 京都府 3 ・ ・ ・ ・ ・ そして、sheet2に申請事項1の人の情報を、sheet3に申請事項2の人の情報を、sheet4に申請事項3の人の情報を空白を開けずに次の通り詰めて入力したいのです。 sheet2(申請事由1の人) A B C 1 日付 名前 住所 2 1/1 甲川 東京都 3 1/2 乙本 大阪府 4 ・ ・ ・ sheet3(申請事由2の人) A B C 1 日付 名前 住所 2 1/2 丙藤 北海道 3 ・ ・ ・ 4 ・ ・ ・ sheet1に日付、名前等を入力しただけで、各事由事に他のsheetに詰めて入力されるよう関数式で入力することは可能かどうか教えてください。よろしくお願いします。 ______________________________________________ その際、関数でするやり方を教えてもらったのですが、(A3=IF(ROW(A1)>COUNTIF(Sheet1!$D$1:$D$100,$A$1),"",INDEX(Sheet1!A$1:A$100,SMALL(INDEX(SUBSTITUTE((Sheet1!$D$1:$D$100=$A$1)*1,0,10^5)*ROW($1:$100),),ROW(A1))))というやり方)何しろデータが10000件くらいあり、かなり処理速度が重いです。どなたかマクロで上記の処理の方法を教えていただけませんでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excel2007でVBAを用いて名簿を作成したいのですが、うまくいき
Excel2007でVBAを用いて名簿を作成したいのですが、うまくいきません。 どうかお力を貸していただけませんでしょうか。 【シート名】 シート1:名簿データ入力 シート2:名簿一覧 【質問内容】 シート1に入力した内容を、シート2に転記したいと思っています。 シート1には下記の項目を入力します。 C2 氏名 E2 フリガナ G2 敬称 I2 性別 C3 分類1 E3 分類2 C5 会社名 E5 部署名1 G5 部署名2 I5 役職名 C6 〒 E6 住所1 G6 住所2 C7 電話番号 E7 ファックス G7 携帯番号 I7 Eメール C9 摘要 ・上記の入力完了後にボタンを押すことで、シート2のB2~S2に転記(並びは、上記を上から順番)され、入力したものは未入力状態に戻るようにする。 ・2件目以降は次の行に転記されていく(1件目B2~S2、2件目B3~S3、3件目B4~S4・・・・) ※削除により、行がとびとびに入力されている場合は空いている行に入るようにする 以上のことを可能にするコードをお教え願えませんでしょうか。 加えて、シート2に転記された一覧を、テーブルとして設定し、並べ替え等は行えるのでしょうか? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 名簿をgoogle検索のように検索
シート1に名簿があり、別のシートのセルで名簿を検索したいです。 名簿には氏名、ふりがな、識別番号、住所、電話番号。 別シートには氏名、住所、電話番号を入力する書類。 たとえば、氏名を入力するセルで(さ)と入力すると、 斉藤○○ 佐川○○ 佐藤○○ ドロップダウンで(さ)から始まる名前が出てくるようにしたいのですが、どなたか教えてください。
- 締切済み
- オフィス系ソフト
- 別シートのデータを抽出して並べ替えたい
シート1のA列だけに1行飛ばしで名前、住所、電話番号のデータが入っています。ついでに、次の情報との間は2行飛ばしになっています。 A B ―|―――――|―――――― 1|名前a | 2| | 3|住所a | 4| | 5|電話番号a| 6| | 7| | 8|名前b | といった感じです。 このデータを下のように、シート2に綺麗に並べ替えたいのですが… A B C ―|―――――|―――――|―――――――| 1| 名前a | 住所a | 電話番号a | 2| 名前b | 住所b | 電話番号b | 3| 名前c | 住所c | 電話番号c | ひとつずつコピペで移そうと考えていたのですが、データが何百件と増えてしまったため困っています。 簡単にできる方法があれば教えてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAで、名簿の住所を検索
エクセルで下記のように顧客名簿を作っています。 A B C D E F G 顧客NO. 顧客名 フリガナ 住所 郵便番号 電話番号 備考 VBAを使って、同じ地域に住んでいる人をオートフィルタで抽出したいのですが、どうすればよいのでしょう? 例えば、『西区』と入力すれば、住所内に『西区』が含まれる人全部が抽出というようにしたいのですが。 入力する単語はその都度変わります。 どなたかアドバイスください。 よろしくおねがいします。
- ベストアンサー
- オフィス系ソフト
- エクセルで名簿を作るのに
よろしくお願いします。 エクセルを使って名簿を作ります。 氏名を縦に並べていく形式のものと、横に並べていく形式のものを一つのシートで作りたいのですが・・・。 例えば、B3セルに出席番号1の子の名前、B4セルに出席番号2の子の名前・・・と入れていったものを、自動的に横並び名簿(C2セルに出席番号1の子の名前、D2セルに出席番号2の子の名前・・・というように)にも名前が入っていくようにしたいのです。 $マークをつけて、絶対番地にして、コピーすればいいと聞きましたが、うまくいきません。 うまくいく方法を教えてください。よろしくお願いします。
- 締切済み
- オフィス系ソフト
- excelで名簿作成#REF!表示されます??
最近PCを始めたばかりのexcel初心者です。 100名程の名簿を作成しています。 こちらのサイトを参考にしながら四苦八苦して作成しましたが、1名退会したため支所名簿:退会者のセル行を削除したところ不具合が出たので躓いています; 先ず・・ 2枚のsheetを使用して支所名簿から宛名にリンク? *支所名簿のsheetの一覧表には“名簿”と名前をつけています。 sheet名【支所名簿】には A1 B1 C1 名前 〒 住所 sheet名【宛名ラベル】 A1 A2 A3 〒 住所 名前 支所名簿の名前のセルさえ指定すれば 〒・住所は表示されるように作成しました。 数式は・・ A1に『=IF(COUNTIF(名簿,A3),VLOOKUP(A3,名簿,1,FALSE),"") A2に『=IF(COUNTIF(名簿,C1),VLOOKUP(C1,名簿,2,FALSE),"") A3に『=支所名簿'!A1』 退会した人(セル:A1)を消すために、支所名簿A1の行を削除すると【宛名ラベル】のC1に#REF!となります。 支所名簿のsheetで退会者を削除すると宛名ラベルのSheet も順送り(エラーのラベルが出ない)に出来る方法はないのでしょうか? (市販の宛名ラベルでの作成は使用できないので、excelで作成です) また、別の方法でも有れば ご伝授頂きたく宜しくお願いいたします。
- 締切済み
- オフィス系ソフト
- Excelでの抽出(検索?)
エクセルを使い、シートAにID(100件)を、シートBに不要なID(10件)が入っています。 このとき、シートCにA-Bの90件のIDを表示させたいのですが、どのような方法があるでしょうか。 シートCは、シートAで不要なIDの入っていた行が空白になって100行目まで表示されても、詰まって90行まで(空白がなく必要なIDのみ)が表示されてもどちらもでかまいません。 例えばこんな感じです。 シートA シートB シートC A12 B34 A12 B34 D78 C56 C56 E90 D78 E90 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
回答ありがとうございます。返事遅れて申し訳ありませんでした。これを参考にしてみたら見事にできました!!ほんと助かりました。今後もどうぞよろしくお願いします。