- 締切済み
エクセル データベース 別シートで一覧表
いつも大変お世話になっております。 現在、エクセル2007を使用して、 名前・住所・電話番号等のデータベースを作成しております。 データベースは完成し、 次に、プリントアウトしたいのですが、 データベースに入れているデータ量が多く、 一覧表として出そうと思うと、数枚に渡るか、切れてしまうか、 字がすっごく小さくなってしまいます。 必要なデータだけ、違うシートもしくはブックで一覧表を作成したいのですが、 その場合、何か良い方法はありますか? エクセルは普通に使えますが、マクロは組めません。 マクロを組む必要があるのでしょうか? ちなみに、個人情報は、●万件と多量な為、 エクセルの形を整えれば?という問題ではありません。。 どうか、お助けください!!
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- MackyNo1
- ベストアンサー率53% (1521/2850)
>そこで、オートフィルターを使用して、 >A所属先の一覧を選びます。 >そして、そのデータをコピーして、別のシートに貼り付け。 >行や線を綺麗に整えて一覧表としております。 元データがSheet1にあり、所属がB列にある場合、抽出したい所属名をE1セルに入力(入力規則を利用してドロップダウンリストで選択)したら、以下のような数式で該当するA列のデータを抽出することができます。 =IF(COUNTIF(Sheet1!$B$2:$B$10000,$E$1)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(INDEX((Sheet1!$B$2:$B$10000<>$E$1)*10000+ROW($B$2:$B$10000),),ROW(A1)))) 上記の数式を右方向にオートフィルすればB列以降のデータも表示できますが、この数式を多用するとシートが重くなるので、重複のないデータを上記の関数で表示し、VLOOKUP関数などで表からその行のデータを探してくる数式にしたほうが良いと思います。 ちなみに、データ数に応じて罫線を自動表示させるには、以下のような数式を使った条件付き書式を利用します。 A1セル以下を選択し、「数式が」にして「=A1<>""」を設定して「書式」から適当な罫線を選択します。
- imogasi
- ベストアンサー率27% (4737/17070)
フィルタオプションの設定の条件を設定する部分(セル)を、都度適宜変化させてフィルタをやれば良いと思う。やり方によって 他シートに結果を出すことも出来る。 ーー 関数はデータの条件による抜き出しは苦手です。回答が出ているような複雑な式になり、質問者のレベルでは、一読してでは判らないでしょう。 ーー エクセルに表を作ったぐらいで、データベースと言うのは言い過ぎなんです。データをコンピュターに載せただけに近い。 データベースソフトでも使えるようにならないと、操作が面倒だとか言える資格はありません。 ーー 例えば、全員を府県別に分けて印刷したいようなときは、府県でソートして印刷するのがわかりやすく速い。
- Azzz___
- ベストアンサー率40% (9/22)
こんにちは。 オートフィルタでも不十分なようですが、これは単に印刷ではなく、 抽出したデータだけのシートも作成する手間が発生すると言うことでしょうか? だとすると、一般機能では難しい気もしますが、近いかもと思うのが ピボットテーブルです。 ピボット作成後に元データを修正してピボットを更新すると、修正後の値が入ります。 この方法でも基本的に上記の意味でシートを作成するわけではなく、一枚のピボットシートを 更新して使うので、質問者さんの意図どおりかは分かりませんが、いかがでしょうか?
- MackyNo1
- ベストアンサー率53% (1521/2850)
>必要なデータだけ、違うシートもしくはブックで一覧表を作成したいのですが、その場合、何か良い方法はありますか? 必要なデータとはどのようなデータを言うのでしょうか? オートフィルタで絞り込めるなら、この操作が最も簡便だと思うのですが、具体的にそれをどのように改善したいのか提示してください。 複数の列で、いろいろな検索条件で抽出したいなら、検索条件をセルに入力して、フィルタオプションの設定を利用するのが簡単な場合もあります。 上記のフィルタやフィルタオプションの設定を利用する場合は、マクロの記録を利用して(必要ならコードを一部編集すれば)ボタンをクリックするだけで実行可能です。 また抽出データが少ないなら、抽出条件をセルに入力して関数で表示させることも可能です。 いずれにしろ、皆さんから的確な回答を期待するには、ご希望の抽出操作を具体的に例示された方が(元シートのレイアウトと抽出条件)良いと思います。
- web2525
- ベストアンサー率42% (1219/2850)
一覧データの形式、抽出条件等により対応は変化するとは思います ・一覧データの修正部が抽出条件で無い場合、抽出シートに修正を反映させるにはコピー時にリンク貼り付けを行えば自動的に修正されます ・修正部が抽出条件であった場合、再度データの抽出/抽出シ-トの体裁修正が必要となりますが 抽出動作、体裁修正のみをマクロの記録でマクロ化することで自動処理(半自動処理)が可能になると思われます マクロがまったく出来ない場合 ・抽出シート上で計算式を用いて一覧データ上から必要データを抽出する事も可能です この場合は一覧データの修正も反映された抽出シートを作成する事が可能です (ただし計算式は配列計算を含む相当複雑な物が必要になると思われます) データ形式、抽出条件、修正作業内容が明確化されていない場合回答が抽象的となり、決定的な回答を得る事は難しいかな?
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばシート1にデータベースとなる表があるとしてシート2ではお求めの一覧表を作成表示させることにして、シート2のA1セルにはシート2で表示させたいデータを入力するとします。 例えばシート1ではA1セルに氏名、B1セルに住所、C1セルに電話番号の文字列がそれぞれ入力されており各データが2行目以降に入力されているとして、住所のところで東京都の住所を持つ人を抽出しシート2に表示することにする場合にはシート2のA1セルに東京都と入力します。 そこでシート1にはD列に作業列を設け、D2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ISERROR(FIND(Sheet2!A$1,B2)),"",MAX(D$1:D1)+1) これでシート1のD列には東京都の住所のある行に上から番号が振られます。 そこでシート2では2行目のA2セルからC2セルにはシート1の1行目の文字をコピーして表示させ、A3セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(ROW(A1)>MAX(Sheet1!$D:$D),COLUMN(A1)>3),"",INDEX(Sheet1!$A:$C,MATCH(ROW(A1),Sheet1!$D:$D,0),COLUMN(A1))) このようにすればシート2のA1セルに例えば千葉県と入力すれば千葉の人を瞬時に表示させることができます。 このようなテクニックを利用すれば他のケースでも十分対応が可能でしょう。
- aokii
- ベストアンサー率23% (5210/22063)
必要なデータだけ、違うシートもしくはブックで一覧表を作成するのでしたら、フィルター機能を使って必要な部分のみ抽出してから違うシートもしくはブックに値をコピーしてはいかがでしょう。
補足
早速、お返事ありがとうございます。 オートフィルターで抽出して、別シートに貼る・・という作業は現在もしております。 ですが、修正等がしょっちゅうあり、 修正する旅に、また、コピーして、貼って、表をちゃんとして・・という作業は 大変、手間だと思ってしまいます。 他には、良い方法をご存知ではないでしょうか?
補足
お返事が遅くなり申し訳ありませんでした。 説明が下手で本当に申し訳なく思います。 私が作成しているデータベースには、 1行で1名、 A~APまで、氏名・連絡先以外にも、色々なデータが含まれております。 (例えば、個人の所属先) そのデータベースは、ちゃんとした一覧表となっておりません。 (ただのデータベース状態) ですので、所属先ごとに、ちゃんとした一覧表を作成したいと考えております。 そこで、オートフィルターを使用して、 A所属先の一覧を選びます。 そして、そのデータをコピーして、別のシートに貼り付け。 行や線を綺麗に整えて一覧表としております。 ですが、これですと、 データベースを修正しても、その一覧表は変わらないので、 また、オートフィルターで検索→コピー、貼り付け→別シートで行や線を前と同じにして・・・と しなくてはいけない状態です。 データの修正はよくするので、 この作業を毎度毎度となると、とても手間なのです。 そこで、初めは別シートで表を作成しなければいけないとは思いますが、 データベースの住所を変更したら、別シートの一覧表の住所も変更になっている・・ としたいのです。 マクロ以外に良い方法はありませんか? 説明が下手で、長々となってしまい、本当に申し訳ありません。