- ベストアンサー
エクセル関数(マクロ) 抽出方法について
Wendy02の回答
>もともとひとつの職員番号が家族単位で重複して存在していたものを、ひとつの職員番号で一つの行としたいのです。 これで意味が分かりました。できれば、標準モジュールに貼り付けるのがベストです。なお、家族区分は、抽出されません。また、これは、職員No.順でしか、抽出されません。こちらのマクロは、最初に見つけたものを、抽出する仕組みですから、二重の出力はしません。 Sub Compaction() Dim Sh1 As Worksheet, Sh2 As Worksheet Dim Rng As Range, c As Range Dim RowNo As Variant Set Sh1 = Sheet1 '元シート Set Sh2 = Sheet2 '抽出シート Application.ScreenUpdating = False With Sh2 .Range("A1").CurrentRegion.ClearContents Set Rng = Sh1.Range("A1", Sh1.Range("A65536").End(xlUp)) Rng.AdvancedFilter _ Action:=xlFilterCopy, _ CopyToRange:=.Range("A1"), _ Unique:=True .Range("A1").CurrentRegion.Sort _ Key1:=.Range("A2"), _ Order1:=xlAscending, _ Header:=xlGuess, _ OrderCustom:=1, _ MatchCase:=False, _ Orientation:=xlTopToBottom '元シートからフィールド行のコピー Sh1.Range("B1:D1").Copy Sh2.Range("B1") For Each c In .Range("A2", Range("A65536").End(xlUp)) RowNo = Application.Match(c.Value, Rng, 0) If Not IsError(RowNo) Then c.Offset(, 1).Value = Sh1.Cells(RowNo, 2).Value 'c.Offset(, 2).Value = Sh1.Cells(RowNo, 3).Value '家族区分 c.Offset(, 3).Value = Sh1.Cells(RowNo, 4).Value End If Next End With Application.ScreenUpdating = True End Sub
関連するQ&A
- どんな関数を使えばよいか困っています。
Sheet1に A B C D 1 所属 係 NO 氏名 2 1 2 1 山本 3 1 2 2 本田 4 2 1 1 川崎 5 1 3 1 小林 6 3 1 1 鈴木 というデータが入っています。このデータをSheet2に飛ばそうとしています。Sheet2に A B C D 1 1 2 3 氏名選択リスト 2 係NO 係NO 係NO 3 社員NO 社員NO 社員NO 所属番号はあらかじめ入っています。D1の氏名選択リストはSheet1のD列の氏名を入力規則でリストにしています。このリストより検索値(氏名)を選び、この氏名に一致する所属番号の行に自動で係番号、社員番号を表示させたいと思います。 (例) 氏名リストより『鈴木』を選択。 A B C D 1 1 2 3 鈴木 2 1 3 1 どういう関数を使えばよいでしょうか。教えて下さい。
- ベストアンサー
- オフィス系ソフト
- エクセル内での、データの複数の抽出は無理でしょうか?
Sheet1 A B C D 1 こ た い あ 2 き ち ろ か 3 け つ は さ 4 く て に た 5 か と ほ な Sheet2 A B C 1 か と ほな 2 き ち ろか 3 く て にた VLOOKUP関数で Sheet2のA1、A2、A3をSheet1から 同列のB、Cも同じように抽出しようとしましたが C列だけSheet1のC列とD列と合わせた表記にしたいのですが これは関数では無理なのでしょうか? 私自身、あまり関数が得意ではないので もしマクロでなければ・・・となると少し不安です。 宜しくお願いします。
- 締切済み
- オフィス系ソフト
- 関数:行を挿入すると数値がずれてしまう
今塾の成績管理表を作成しております。 シートは、名簿シート、◯月(12か月分)シートを用意しています。 ▼名簿シートは A学生番号 Bクラス C高校名 D氏名 で、生徒は100人くらいです。クラスはA,B,C,Dと4クラスあります。 1~100行くらいに生徒名を登録し、 200~300行でクラス順で学籍番号順になるように、FILTER関数で並び替えをしております。 ▼◯月シートは A学生番号 Bクラス C高校名 D氏名 E点数 となっており、A~D列はVLOOKUPを使い名簿シートを参照しております。 2月~1月にかけて、各生徒の成績を蓄積していこうと考えております。 ですが、やはり入塾退塾の生徒があるため名簿シートの行を消去したり、追加したりすることがあります。 私の関数の知識では、名簿シートの行を変更すると、◯月シートの方で生徒と点数にずれが生じてしまいます。以下参照 入塾前 A B C D E 001 A 桜高校 渡辺 50 002 A 下北高校 髙橋 37 003 B 能勢高校 柳 80 004 B 南高校 林 10 入塾後(名簿シート追加後) A B C D E 001 A 桜高校 渡辺 50 002 A 下北高校 髙橋 37 005 A 北高校 入塾 80 003 B 能勢高校 柳 10 A列は名簿シートを反映し、B~D列はVLOOKUP関数でA列を参照しているので、ずれることはないのですが、これでは肝心の点数がずれてしまいます。 A~D列の並びが変更されると、E列も一緒に移動するとこが出来るように関数を入れることは可能なのでしょうか? ご存知の方いらっしゃれば、ご教示いただければ幸いです。
- 締切済み
- その他(業務ソフトウェア)
- Excelの関数またはマクロを教えて下さい。
Exsel2000の関数で、現在以下の関数まで出来たのですが、これを応用して検索値「A1」を2つのセル「A1&B1」にしたいのですが、どうすればよいのでしょうか?どなたか方法を教えて下さい。 =VLOOKUP(A1,Sheet1!$A$1:$E$2000,4) 上記の関数から判るように、これは 例えばSheet2のC1のセルにこの式を入れる場合、A1と同じ内容の値を、Sheet1のA列から検索して、そして同じ行のSheet1のD列の値をSheet2のC1のセルに返すという関数です。 これを応用して、「A1と同じ内容…のA1を、A1&B1の2つが一致するセルを検索して、同じ列のSheet1のD列の値をSheet2のC1のセルに返すという関数にしたいのです。 どなたかおわかりになる方がおりました宜しくお願いいたします。 また、マクロを使う方法でも良いのですが、当方マクロは詳しくないので出来るだけ判りやすくお願いいたします。
- ベストアンサー
- 会計ソフト
- エクセル 複数条件での抽出
自社名簿(sheet1)と、系列会社の名簿(sheet2) A列:ID番号 B列:氏名 C列:所属グループ D列:支店 共に、同じ表です。 sheet1とsheet2を照らし合わせ、A~Dまでの情報が全て一致する(sheet2に重複してる)該当者のみに sheet2のE列に★印が反映されるようにしたいのです。 条件が一つですと、沢山の簡易的な関数でわかりやすのですが、 複数の条件での方法が、他の質問者様の回答の説明をみてもしっくりきませんでした。 ご教授宜しくお願いします。
- ベストアンサー
- その他(ビジネス・キャリア)
- エクセルの関数での質問です
エクセルの関数での質問です sheet1に A B C D E 1 ○ ○ ○ 1 2 ○ ○ ○ 3 ○ ○ ○ 2 4 ○ ○ ○ みたいな状態からsheet2に A B C D E 1 ○ ○ ○ 1 3 ○ ○ ○ 2 のようにE列の数値順に行を並べることはできますか? エクセル初心者なのでわかりやすく教えていただけると助かります。
- ベストアンサー
- オフィス系ソフト
- エクセルでの関数を使った条件抽出方法について
エクセル初心者です。 エクセルでの関数を使った条件抽出方法についてどなたかご教授願います。 よろしくお願いします。 Sheet1の特定のセルに対して、Sheet2中にある条件に一致するセルの値を 表示させる方法がわかりません。 <具体的内容> 次のような2つのシートがあります。 Sheet1 ------------------------- A B C 1 2 2 費目1 3 費目2 4 費目3 ------------------------- Sheet2 ------------------------- A B C D 1 2 1 2 3 3 費目2 100 200 300 4 費目1 30 10 20 5 費目3 150 350 250 ------------------------- Sheet1のC1のセルと同じ数値をSheet2の2:2行から探して、 一致する数値に該当する列の3~4行目の値を、 Sheet1のA2:A3の費目とSheet2のA3:A5の費目とが 一致するようにして、Sheet1のB2:B3に表示したいです。 このときSheet1のB2~B3にはどのような関数式を入れたらよいですか? 上の場合だと、Sheet1のB2=10、B3=200、B4=350となってほしいです。 HLOOKUP、COLUMNなど組み合わせてみたのですが、 全くうまくいきません。簡単ではないのでしょうか? どなたか教えてください、よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- エクセルで条件を満たすものを抽出させる(関数で)
シート1にタイムを計った一覧があります。 A B C 1 山田 2 3.5 2 田中 5 4 3 根岸 2 2.3 4 村井 5 3 5 鈴木 5 3 シート2には社員名簿があります。社員は増減があるため更新したら、それも反映させたいです。 A B 1 山田 社員 2 根岸 社員 3 村井 社員 そして、シート3に社員で、かつB列が2の情報だけを表示させたいのです。 A B C 1 山田 2 3.5 2 根岸 2 2.3 シート3にはどのような関数を入れたらよいのでしょうか?? よろしくお願い致します。 ちなみにVistaです。
- ベストアンサー
- その他(インターネット・Webサービス)
- Excelで特定も文字を含む行全てを、別のシートに抽出する方法を教えて
Excelで特定も文字を含む行全てを、別のシートに抽出する方法を教えてください。 Excel2007で名簿を作成しています。 それぞれに、ある条件で「A」「B」「C」と3つに分類しています。 それぞれの分類ごとに、別シートに一括して抽出する方法をご教示ください。 例 Sheet1には (所属名)(コード)(氏名)(コード)(資格)(コード)(年数)(ランク)など14項目あります ※コードの一部には入力規則を使用したブルダウンで選択したり、lookup関数で、数字を入力すると所属名が表示されるようになっています 抽出条件となるランクは、年数のセルが●●以上であれば「A」、●●以下であれば「B」という関数を使用しています。 名簿に入力するごとに、「A」「B」「C」と別のシートに抽出させたいのです。 こちらのサイトでいろいろ検索し参考に試してみましたが、抽出できませんでした。 関数でもマクロでもいいので、抽出する方法を教えてくださると大変嬉しいです。 宜しくお願い致します。
- 締切済み
- オフィス系ソフト
- エクセルの関数で複数抽出
エクセルの関数を教えて欲しいです。 以下のような表が別ファイルであるとします。 【Aファイル】 【Bファイル】 A B C A B C D E 1 商No 分No 名 1 商No 分No 名 売上 売数 2 23 11 あいう 2 1 2 あかさ 24000 12 3 55 34 かきく 3 2 4 いきし 67000 33 4 65 77 さしす 4 11 21 うくす 55700 65 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ Aファイルの商品Noと分類Noが一致するものを、Bファイルから検索し、行ごと別ファイルに抽出(複数)する関数を教えていただけないですか?。いろいろ検索して探しましたが、複数抽出する方法がわかりませんでした。よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
お礼
ご回答ありがとうございました。 いろいろ対応方法を教えていただき試しましたが、 最終的にマクロでの方法にしました。