ウォッチ漫画『酒男子』新連載開始!

エクセルで複数のシートから、あるデータを取り出し、別のシート(又はブック)に一覧表を作成することはできますか?

シート1 東京支店
   A   B   C
1東京支店 

3          50

シート2 大阪支店
   A   B   C
1大阪支店 

3          30

新シート(又は新ブック)
   A   B   C
1東京支店 50 
2大阪支店 30
3   




 

このQ&Aに関連する最新のQ&A

A 回答 (7件)

こんばんは。

#4のWendy02です。

>異なるシートが100枚程度ある場合としてご教示ください。

やはり、「統合」には変わりないですが、VBAになります。
1つずつ探して足したのでは、話になりませんが、VBAにするには、データが不足しています。私としては、octet様のご反応しだいです。
    • good
    • 0

#3です。


------
#3で
>>あるデータを取り出す
の「あるデータ」を「選択」」「抜き出し」する、IDや特徴はなんでしょうか
と質問したが、#5の補足で、答えてもらっていないが、各シートの定位置のデータを集めるらしいと推定した。
ーーーーー
VBAで
Sub test01()
Dim sh As Worksheet
i = 1
For Each sh In ActiveWorkbook.Worksheets
If sh.Name <> "Sheet4" Then
Worksheets("Sheet4").Cells(i, "A") = sh.Cells(1, "A")
Worksheets("Sheet4").Cells(i, "B") = sh.Cells(3, "C")
i = i + 1
MsgBox sh.Name
End If
Next
End Sub
上記を標準モジュールに貼り付け、「Sheet4」は集めるシートですが、本番で集めるシートのシート名に合わせて変えて、実行してください。
    • good
    • 0

No.1です。



すみません、勘違いです。
新シートに支店名が入っているものと勘違いしてしまいました。

私の方法では出来ません。

この回答への補足

皆様のご回答に御礼申し上げます。
異なるシートが100枚程度ある場合としてご教示ください。

補足日時:2005/10/23 20:12
    • good
    • 0

こんにちは。



C列にあったものは、C列になりますが、標準で、データ-「統合」を使えばできます。
最初に、新シート(または新ブック)で、「統合」を実行し、それぞれの範囲を追加して、左端列にチェックを入れ、「OK」をクリックすればできます。
ただし、同じものがあれば、合計になります。

新シート(又は新ブック)
   A   B   C
1東京支店      50 
2大阪支店      30
3   
    • good
    • 0

>複数のシートから


>別のシート(又はブック)に一覧表を作成する
は意味が判ります。
>あるデータを取り出す
の「あるデータ」を「選択」」「抜き出し」する、IDや特徴はなんでしょうか

XX支店に対応するC列は2行下の行と決まっているのでしょうか。
●VBAを使わないと難しいと予想します。
●VLOOKUP関数の「範囲」は、複数シートを範囲指定できるか、OKWEBで他の質問が今出ていて、可能という回答は出ていません。MATCH関数の検査範囲は、複数列を指定することもできません。
    • good
    • 0

新シートのB1に =Sheet1!C3、 B2に=Sheet2!C3の式を入れただけではだめですか?

    • good
    • 0

VLOOKUP関数で可能です。

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【エクセル】表から条件に合ったデータを別シートに順番に抽出したい

エクセルの表である条件にあてはまる行を
別シートに順番に抽出されるような関数を教えてください。


シート1のB列にあるデータが"渋谷区"のとき
シート2のE74からE80くらいまでに
シート1のC列のデータを上から順に抽出されるようにしたいです。

【シート1】
A        B         C
1 東京都 渋谷区  PC
2東京都  港区  PC
3東京都 新宿区  マウス
4東京都 渋谷区  ペン
5東京都 渋谷区  モニタ



10

【シート2】

E
74 PC
75 ペン
76 モニタ



80 


【補足】
元の表(シート1)を編集することがあるので
自動的に反映されるよう、関数で作成できたらと思います。
シート2の構成上、抽出後のソートや、フィルタオプションは避けたいです。

わかりづらい文章で申し訳ございませんが
どなたかいいアドバイスがありましたら教えてください。
お礼は明日になってしまいますが、必ずご返答いたします。
よろしくお願いいたします。

 

エクセルの表である条件にあてはまる行を
別シートに順番に抽出されるような関数を教えてください。


シート1のB列にあるデータが"渋谷区"のとき
シート2のE74からE80くらいまでに
シート1のC列のデータを上から順に抽出されるようにしたいです。

【シート1】
A        B         C
1 東京都 渋谷区  PC
2東京都  港区  PC
3東京都 新宿区  マウス
4東京都 渋谷区  ペン
5東京都 渋谷区  モニタ



10

【シート2】

E
...続きを読む

Aベストアンサー

>E74に関数を入力し、その後関数をE80までドラッグすればよいのでしょうか?
いいえ。
1.
=INDEX(シート1!C1:C11,SMALL(IF(シート1!B1:B10="渋谷区",ROW(A1:A10),11),ROW(A1:A10)))&""
の数式を掲示板上でコピーします(シート名は合わせてください)
2. E74:E80セル範囲を選択します
3. 数式バーで[Ctrl]+[V]貼り付け
4. [Ctrl]+[Shift] +[Enter] でセルへの入力を確定させます

>その際、絶対参照や相対参照は必要でしょうか?
セルのコピーはしませんので不要です。
参考まで

Qエクセルで複数の条件を抽出し自動的に別シートに反映する方法を教えてください。

こんばんは。教えてください。

元データ(sheet1)を更新するたび
2つの条件にあったデータを
別シートに自動的に抽出したいので
適した関数がありましたら教えてください。



◇シート1◇ ※元データ
 A      B     C     D     F
1 氏名 役職 部署 年齢 移動時期     
2 山田 社員 開発 45  未調整
3 田中 社員 人事 42  4/1~
4 鈴木 派遣 企画 30  
5 高橋 役員 人事 50  未調整
6 坂野 社員 企画 33  未調整  
7 井上 派遣 企画 29  未調整

◇シート2◇ ※部署が人事で移動時期が未調整の人のみ抽出
 A      B     C     D    F
1 氏名 役職 部署 年齢 移動時期 
2 高橋 役員 人事 50  未調整


補足
・元データ(シート1)はこれからもデータを追加するので
 その度、シート2、シート3もそれぞれ自動で反映されるようにした いです。

・マクロ、VBAは知識がないので
 関数で作成したいです。

・できるだけエラー(#N/Aなど)表示されないようにしたいです。

説明が不十分で伝わりにくいかと思いますが
よろしくお願いします。

こんばんは。教えてください。

元データ(sheet1)を更新するたび
2つの条件にあったデータを
別シートに自動的に抽出したいので
適した関数がありましたら教えてください。



◇シート1◇ ※元データ
 A      B     C     D     F
1 氏名 役職 部署 年齢 移動時期     
2 山田 社員 開発 45  未調整
3 田中 社員 人事 42  4/1~
4 鈴木 派遣 企画 30  
5 高橋 役員 人事 50  未調整
6 坂野 社員 企画 33  未調整  
7 ...続きを読む

Aベストアンサー

> 部署を"人事"と"企画"の両方で抽出する条件を追加する

おはようございます、merlionXXです。
Operator:=xlOr, Criteria2:="=企画" と、OR条件で"企画"を加えれば可能です。
一応、各コードの動きに解説もつけておきました。(解説は’でコメントアウトしてますのでこのまま貼り付けてもOKです。)

Private Sub Worksheet_Activate() 'このシートがアクティブになったら自動実行
With Sheets("Sheet1") 'Sheet1対して
.AutoFilterMode = False 'オートフィルタ終了(あればエラーになるため)
.Range("A1:E1").AutoFilter 'A1:E1にオートフィルタ設定
.Range("A1:E1").AutoFilter Field:=3, Criteria1:="=人事", Operator:=xlOr, Criteria2:="=企画" '左から3つ目のフィルタを"人事"と"企画"のOR条件で抽出
.Range("A1:E1").AutoFilter Field:=5, Criteria1:="未調整" '左から5つ目のフィルタを"未調整"で抽出
.Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A1") 'A1から最終セル範囲の可視セルをこのシートのA1以降に貼り付け
.AutoFilterMode = False 'オートフィルタ終了
End With 'Sheet1に対する記述おわり
End Sub

> 部署を"人事"と"企画"の両方で抽出する条件を追加する

おはようございます、merlionXXです。
Operator:=xlOr, Criteria2:="=企画" と、OR条件で"企画"を加えれば可能です。
一応、各コードの動きに解説もつけておきました。(解説は’でコメントアウトしてますのでこのまま貼り付けてもOKです。)

Private Sub Worksheet_Activate() 'このシートがアクティブになったら自動実行
With Sheets("Sheet1") 'Sheet1対して
.AutoFilterMode = False 'オートフィルタ終了(あればエラーになるた...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセル:複数シートのデータを一覧シートに自動的に表示させるには?

エクセル:複数シートのデータを一覧シートに自動的に表示させるには?

こんにちは。
以前同じ質問をさせて頂いたのですが、締め切った後で試したところ
どうにもうまくいかず(試さずに締め切ってしまった私が悪いのですが・・)、
もう一度質問させていただきます。

複数シート(6シート程度)に同一形式のリストがあり、あるシートに入力していくと
同一ファイル内の「一覧シート」に自動的にID番号順に表記される(※下記参照)
というようにしたいと考えております。

何かよい方法はありますでしょうか?
お知恵を拝借できれば幸いです。宜しくお願い致します。

(例)
Sheet1
ID 日付     名前  達成度・・・(項目=15項目ぐらい)
1 2010/10/17  山田  A
4 2010/10/30  鈴木  A



(それぞれのシートに100個ぐらいのリスト)

Sheet2
ID 日付     名前  達成度・・・
2 2010/10/17  佐藤  C
3 2010/10/20  中村  B




一覧シート
ID 日付     名前  達成度・・・
1 2010/10/17  山田  A
2 2010/10/18  佐藤  C
3 2010/10/20  中村  B
4 2010/10/30  鈴木  A


エクセル:複数シートのデータを一覧シートに自動的に表示させるには?

こんにちは。
以前同じ質問をさせて頂いたのですが、締め切った後で試したところ
どうにもうまくいかず(試さずに締め切ってしまった私が悪いのですが・・)、
もう一度質問させていただきます。

複数シート(6シート程度)に同一形式のリストがあり、あるシートに入力していくと
同一ファイル内の「一覧シート」に自動的にID番号順に表記される(※下記参照)
というようにしたいと考えております。

何かよい方法はありますでしょうか?
...続きを読む

Aベストアンサー

 横から失礼します。

>やはり関数では難しいですか・・・

 作業用シートと併用すれば、関数でも可能です。

 まず、例えば

作業用シート

という名称のシートを設けて下さい。
 次に、作業用シートのA列に、

A1セル  Sheet1
A2セル  Sheet2
A3セル  Sheet3
A4セル  Sheet4
 ・    ・
 ・    ・
 ・    ・

という具合に、元リストが存在しているシートの名称を、入力して下さい。
 この時、シート名を並べる順序は特に気にされなくても結構ですが、同じ名称を重複して入力する事はなさらないで下さい。(途中に空欄や、存在しないシート名が入力されていても、そのシート名を無視して、処理する事が可能です)
 次に、作業用シートのC1セルに、次の数式を入力して下さい。

=IF(ISERROR(INDIRECT(INDEX($A:$A,MOD(INT(ROW()-0.5),MATCH("/",$A:$A,-1))+1)&"!IV65536")),"",IF(ISNUMBER(INDIRECT(INDEX($A:$A,MOD(INT(ROW()-0.5),MATCH("/",$A:$A,-1))+1)&"!A"&INT((ROW()-0.5)/MATCH("/",$A:$A,-1))+1)),INDIRECT(INDEX($A:$A,MOD(INT(ROW()-0.5),MATCH("/",$A:$A,-1))+1)&"!R"&INT((ROW()-0.5)/MATCH("/",$A:$A,-1))+1&"C"&COLUMNS($A:A),0),""))

 次に、作業用シートのB1セルに、次の数式を入力して下さい。

=IF(ISNUMBER($C1),$C1+COUNTIF($C$1:$C1,$C1)/COUNTIF($C:$C,$C1),"")

 次に、作業用シートのB1~C1の範囲をコピーして、同じ列の2行目以下に、全ての元リストの行数の合計を、上回るのに充分な行数に、貼り付けて下さい。
 そして、作業用シートのC列全体をコピーして、C列よりも右にある列に貼り付けて下さい。(例えば、元リストがO列まである場合には、それよりも2列多い、Q列にまで貼り付けて下さい)

 次に、一覧シートの
A1セルに「ID」、
B1セルに「日付」、
C1セルに「名前」、
D1セルに「達成度」、
と入力して下さい。
 次に、一覧シートのA2セルに、次の数式を入力して下さい。

=IF(ROWS($1:1)>COUNT(作業用シート!$B:$B),"",VLOOKUP(SMALL(作業用シート!$B:$B,ROWS($1:1)),作業用シート!$B:$IV,COLUMNS(作業用シート!$B:C),0))

 次に、一覧シートのA2セルをコピーして、同じ行のA列よりも右にあるセルに貼り付けて下さい。(例えば、元リストがO列まである場合には、O列にまで貼り付けて下さい)

 次に、B2セルの書式設定の表示形式を、日付にして下さい。
 最後に、作業用シートの2行目をコピーして、3行目以下に貼り付けて下さい。

 これで準備は完了です。
 後は、作業用シートのA列に名称を入力した、各シートの元リストにデータを入力すると、そのデータが自動的に一覧シートに、ID順に表示されます。

 横から失礼します。

>やはり関数では難しいですか・・・

 作業用シートと併用すれば、関数でも可能です。

 まず、例えば

作業用シート

という名称のシートを設けて下さい。
 次に、作業用シートのA列に、

A1セル  Sheet1
A2セル  Sheet2
A3セル  Sheet3
A4セル  Sheet4
 ・    ・
 ・    ・
 ・    ・

という具合に、元リストが存在しているシートの名称を、入力して下さい。
 この時、シート名を並べる順序は特に気にされなくても結構ですが、同じ名...続きを読む

QEXCEL:複数シートから特定行を一覧化したい

【 EXCELで悩んでいます 】
複数のシートから特定の言葉の記入がある行だけ、
新規ワークシートへ自動で書き出したいのですが難儀しています。

当方エクセル初心者でして、
ピボットテーブルもマクロも組んだことがありません。
工程数がかかってもいいので、できるだけ優しい方法を教えて下さい。

仕事で使うデータで、これがあると非常に助かります。

【 準備しているデータ 】
・参照したいデータシートは8枚
・それぞれ、同じフォーマットで内容が異なる60行弱の文字データ
(画像参照ください。このようなデータシートが8枚あります)

【 やりたいこと 】
8枚にも渡るシートの内容のなかから、
特定の文字が入っているもの(画像でいうと、G列「進捗」の「作業中」になっている行)だけを自動的に抽出して
一枚の新規シートにまとめて一覧化したい

【 環境 】
EXCEL 2003
Windows

面倒かとは思いますが、
お優しいエクセルマスター様がいらっしゃると信じております。
どうかよろしくお願い申し上げます。

Aベストアンサー

>なお、MackyNo1様がお考えの記録マクロの利用する方法もよろしければお知らせいただきたいのですがよろしいでしょうか?

以下のようなキー操作でマクロを記録してください。

まず、準備として、1行目に項目名を記載した集計シートを作成しておきます。

「ツール」「マクロ」「新しいマクロの記録」から、以下の操作をします。

集計シートのA2セルからデータ挿入範囲を大きめに選択し、Deleteキーで以前のデータを削除します(最初は何も入力されていませんが)。
次に1枚目のシートの項目行を選択し、データの入力されているA2セルからデータ範囲を大きめに選択し(予定最大データ数分まで選択します)、「データ」「フィルタ」「オートフィルタ」で必要なデータを表抽出し、Ctrl+Cでコピーして、集計シートのA2セルでCtrl+Vで貼り付けます。
2枚目のシートからは以下の操作を行います。
同様に、2枚目のシートのA2セルから、データ範囲を大きめに選択してからフィルタで抽出したデータをコピーし、集計シートのA1セルを選択して、Ctrl+↓のショートカット操作を行い、マクロの記録ツールバーの「記録終了」右にある「相対参照」のアイコンをクリックし、↓キーを押してから、相対参照ボタンをもう一度押して捜査隊参照を解除してCtrl+Vで貼り付けます。
この操作を8枚目のシートまで行い、最後にすべてのシートのフィルタモードを、「データ」「フィルタ」「オートフィルタ」で解除すれば完成です。

最終セルの選択にCtrl+↓のショートカット操作を利用すること、相対参照の記録ボタンをA列の一番下のデータの1つ下のセルを選択すること、各シートのデータ範囲を最初に選択しておいてからフィルタ操作するところが記録マクロ操作のポイントです。

>なお、MackyNo1様がお考えの記録マクロの利用する方法もよろしければお知らせいただきたいのですがよろしいでしょうか?

以下のようなキー操作でマクロを記録してください。

まず、準備として、1行目に項目名を記載した集計シートを作成しておきます。

「ツール」「マクロ」「新しいマクロの記録」から、以下の操作をします。

集計シートのA2セルからデータ挿入範囲を大きめに選択し、Deleteキーで以前のデータを削除します(最初は何も入力されていませんが)。
次に1枚目のシートの項目行を選択し、データ...続きを読む


人気Q&Aランキング