忙しい現代人の腰&肩のお悩み対策!

Excelブックにある50枚ほどのシートのデータを一枚のシートにまとめたいです。
現在シート1には機材Aを使用している人の名前、シート2には機材Bを使用している人の名前、シート3には機材Cを・・・
というような感じで50枚ほどあります。
これを一枚にまとめます。
列Aに名前、列Bからを機材名としたいんです。
たとえば山田さんが機材Aと機材Cを使用していたとしたら、「山田 ○  ○」という感じで、機材A、Cの列に○が付くようにしたいです。
各シートに記載されている名前は、重複しています。(佐藤さんはシート1にも2にも40にも名前があるというようなかんじです)
列の中に何回も同じ名前が出ることを避けたいです。

出来る限り短時間で終わらせたいのですが、なんせExcelの知識が乏しく困っています。
なるべく早くするよう言われていますので、初心者でも出来るような方法をご存じでしたら教えてください。
ちなみにしようするのはExcel2010です。

大雑把な質問で申し訳ございません、よろしくお願いいたします。

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

A 回答 (1件)

一例です。


各シートはA列に名前が入力されているとしています。
(1)Sheet1~Sheet50の名前を新シート(1行目は見出しとしましょう)にのA2以下にコピー、
   新シートのA列を選択→データタブで重複の削除
(2)新シートのB2に=IF(COUNTIF(INDIRECT("Sheet"&COLUMN(A1)&"!A:A"),$A2),"○","")を入力、縦横にコピー
   因みにB1より右方向には機材名を入力して下さい。
    • good
    • 6
この回答へのお礼

ありがとうございます!
やりたいことはまさにそれでした!
助かりました!
しかし、また別の難題をつきつけられたので、別の質問を同じカテゴリ―内でさせていただきます。
とても勉強になりました、ありがとうございます。

お礼日時:2011/10/14 17:17

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qエクセルで多数のシートをまとめる方法

エクセルで10以上あるシートを一発でひとつにまとめる方法はあるでしょうか?

コピー&ペーストを繰り返すしかないのでしょうか…

仕事で明日やらなければならないので、
お分かりになる方、是非教えてください!

Aベストアンサー

まぁ既出回答にもあるように,10数回程度コピー貼り付けすることで,どうという作業ではないとは思います。

さておき。
ご利用のエクセルのバージョンが不明ですが,ご利用のOfficeのバージョンによっては

1.ワードを起動する
2.挿入のファイルからエクセルブックを指定する
3.添付図のようなダイアログが表示されたらラッキー成功です,ブック全体を指定して挿入する
4.Ctrl+Aで全体を選び,コピーして,エクセルの新しいシートに貼り付ける

と一発でできます。
添付図のようにならなかったときは,出来ません。

Q複数のシートにまたがるデータをひとつのシートにまとめるには(VBA)

複数のシートにまたがるリスト形式のデータをひとつのシートにまとめるにはどのようなマクロを組めばよいのでしょうか。
具体的には
(1)Sheet1のリスト形式のデータ全てをコピーする
(2)貼り付け先のシート(統合シート)に貼り付ける
(3)Sheet2のデータ全てをコピーする
(4)統合シートの最終行の次に貼り付ける
(5)残りのシートについても(3)→(4)を繰り返す

よろしくお願いします。

Aベストアンサー

"統合"という名前のシートに、他のすべてのシートのリストデータを貼り付けます。
各シートのリストはA列から始まっているものとします。(違う場合はコードを修正してください)

Sub test01()
Dim sh As Worksheet
Dim lr As Long, tlr As Long
For Each sh In Worksheets
If sh.Name <> "統合" Then
lr = sh.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
sh.Rows("1:" & lr).Copy
tlr = Sheets("統合").Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
Sheets("統合").Range("A" & tlr + 1).PasteSpecial
Application.CutCopyMode = False
End If
Next
End Sub

Qエクセルで一つのブックにある複数のシートを一つのシートにまとめる。

エクセルで一つのブックにある複数のシートを一つのシートにまとめる。
各シートには同じ形式の表(大きさも同じ)が1枚ずつあります。
それを一つのシートに、縦に並べて表示したい。
シートが100枚ぐらいありますので、ひとつひとつコピーするのは
大変です。
よろしくお願いします。

Aベストアンサー

こんばんは。

VBA(マクロ)を使った方法の紹介です。

以下の参考URLをご覧ください。

参考URL:http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_data_matome.html

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エクセル:複数シートのデータを一覧シートに自動的に表示させるには?

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

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

複数シート(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
 ・    ・
 ・    ・
 ・    ・

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

Q複数シートの同じセル内容を1シートに順番に貼り付けたい

複数あるシートの同じ番地のセルをコピーして、1シートの一覧にしたいと思っています。簡単な方法があったら教えてください。

Aベストアンサー

次のようにしてはどうでしょう。
あるシートのA2セルから下方に例えばSheet1,Sheet2などとシート名を入力します。
B1セルには表示したいセル番地を例えばA1のように入力します。他にも表示させたい場合にはC1セルにセル番地を入力します。
そこでB2セルには次の式を入力し右方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。
=IF(OR($A2="",B$1=""),"",INDIRECT($A2&"!"&B$1))

Q複数の同じフォーマットのファイルを新しいブックで一つのシートにまとめる方法

仕事で、各部署から送られてきた、同じフォーマットのファイル(シート1にのみデータ有)が50個近くあります。
それを新しいブックで一つのシートにまとめなくてはいけません。
地道にコピペするのは時間がかかるのでマクロで処理を行いたいと思います。
マクロでの処理方法ご存知の方、処理方法の載っているサイトをご存知の方、もしくはマクロより簡単な方法がありましたら教えてください。

あと、逆に一つのシートをいくつかのファイルに振り分けていく方法もご存知でしたら教えて下さい。
よろしくお願いします。

Aベストアンサー

すみません。質問を勘違いしていました。
>新しいブックで一つのシートにまとめなくてはいけません
でしたね。
Sub Sample1()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Sheet1").Range("A1:J1000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCopyMode = False
Workbooks(buf).Close SaveChanges:=False
buf = Dir()
Loop
End Sub
で試してみてください。使い方などは
http://oshiete1.goo.ne.jp/qa4225063.html
を参照してみてください。同じ質問があったので気がつきました。

すみません。質問を勘違いしていました。
>新しいブックで一つのシートにまとめなくてはいけません
でしたね。
Sub Sample1()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Sheet1").Range("A1:J1000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCop...続きを読む

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エクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング