• 締切済み

ExcelのSQLの使い道

教えてください。 Excel VBAでSQLを使う方法があると思います。 が、ExcelでSQLを使うメリットが良く飲み込めていません。 Excelならピボットテーブルの集計でもそこそこできるような気がします。 ExcelのSQLならではの利点を教えてください。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

ADOを使うのが通例かと思う。 (1)列セルの値を条件として、抜出し(抽出) SELECT文で簡単に実現できる。 Filter使うのと結果は類似。Distinctも使える。 この抽出課題を、Excel関数などでやるのだ、と言って、ここに質問するXXが居るが。 (2)シートデータの結合Join キーがあって、キーの属性などが2シートに分かれている場合など。 VLOOKUPのようなことで済む場合(名称を採るなど)も多いだろうが。 これもプログラムでやると、結構長くなる。 マッチングのアルゴリズムなどを使うことになるのかな。 ーー シートに結果を戻すのに、CopyFromDatasetなどがあるので便利。 ーー 全般についての、一例は http://www7b.biglobe.ne.jp/~whitetiger/ex/ex2002088.html など参考に。 ーー エクセルシートデータをSQLであつかうための、少数の決まりがあるが(フィールド名の指定の仕方など)、それを探せば、後は簡単。 ーー SQLでの、余り特殊な機能は、出来ないと考えた方がよい。

  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.4

SQL(というかリレーショナルデータベースね)を使えるようになるとExcelのピポットテーブルなんて使いたくなくなります。 Excelでそういう使い方をするということはシートに入力するデータ構造が曖昧なときには便利ですけど、そういう使い方をしているということは扱うデータを精査していないということでその場の思いつきでテーブル構造を変えたり列に入力するデータが不揃いになったりするので作成者以外が使うときに非常に困ることがあります。 その点、RDBMSはそのへんの整合性やルールが明確なので田も直ぐに利用ができる。逆に独学でExcelを使いこなしている人はRDBMSは不便だという。 入り口としてはAccessが妥当かと思いますが、扱うデータ件数が多かったり自動化をしたいときにはSQL ServerやOracleを使用することになります。 RDBMSを使い慣れてくるとExcelは帳票作成ツールにしか見えませんwww ※あくまでも個人的感想です!

  • papis
  • ベストアンサー率70% (3582/5078)
回答No.3

SQLはそもそもRDBからデータを取り出す為の言語なので、 Excel単体で事が済む場合には SQLを使うメリットというか意味も無いでしょう。 その取り出したデータの結果を Excelでいろいろ処理すると都合が良い(たとえばグラフ化)ときに、 あるいは、リアルタイムで変化するデータの、現在を可視化したいなどでは、 Excelから直接RDBの情報を引っ張ってきて、それをそのままグラフ化する といった場合に意味がある事だと思います。

  • szk9998
  • ベストアンサー率45% (1024/2232)
回答No.1

Excelは所詮はRDBではないですから。 私はRDBやAccessなどの接続に使います Excelで計算していては、データの保持も不安ですし サンプル数が多ければRDBへ命令を出して結果だけ Excelで受け取ったほうがはるかに高速です そのためのものでは?と考えてましたが・・・

関連するQ&A

  • 未だにピボットテーブルがよくわからない・・・

    Excelはもう10年以上も仕事で使ってきて、VBAでマクロを組んで業務を効率化するという仕事もしてきましたが、未だにピボットテーブルだけは理解できません。 ピボットテーブルの使い方を解説したサイトを読んだりもしましたが、どういうことができるのかはだいたい理解できるものの、ピボットテーブルを挿入したあとどうすれば自分の思う集計ができるのかがわからない。 右側にある「ピボットテーブルのフィールド」で、どういうときに「フィールド」「列」「行」「値」それぞれのところへどんな順番で移動すれば良いのかわからない。 同じフィールド内でも順番が入れ替わるだけでピボットテーブルの見栄えがガラッと変わりますよね。 ピボットテーブルを使えば5分で終わるような集計を、僕は1時間とかかけてVBAを使って力技で集計してるのがバカバカしくて悲しくなります。 「VBA使えるなんてすごい!」なんてよく言ってもらえますが、ExcelでできることをわざわざVBAを書いてやるなんて、まるで車輪の再発明じゃないですか。 ピボットテーブルを使いたいというか、理解したいです。 何か良いサイトか本を教えていただけないでしょうか? 特にフィールドのところを詳しく説明してるような・・・。 よろしくお願いいたします。

  • 大量のエクセルデータをアクセスで集計してエクセルに

    こんにちは。 大量のデータをエクセルのピボットテーブルで集計していますが、データが多すぎるのか表示がおかしくなっています。 データだけをアクセスで集計して、エクセルに戻したい(エクセルで表示したい)のですが、なにかサンプル的なHPはないでしょうか。 希望は集計後エクセルにもどして、それをピボットテーブルのようにクリックして表示したり非表示にしたりしたいと考えています。 また、大量のデータを上手に集計する方法を紹介しているHPがあれば、教えてください。 よろしくお願いします。 エクセル:2010 / アクセス:2010

  • ピボットテーブルの集計値をVBAでカンマ区切りにしたい

    ・excelのシートにあるピボットテーブルの集計値の書式をカンマ区切りにするVBAを作成したいのです。どうすればよいでしょうか。 ・汎用的なVBAにしたいので、ピボットテーブル名やフィールド名もVBAで取得するようにしたいです。 ・VBAを実行する前に、その集計値の1つを選択しておきます。 よろしくお願いいたします。

  • EXCELのピボットテーブル

    EXCELのピボットテーブルって何のためにあるんですか。 EXCELで集計や並び替え、抽出ができます。ピボットテーブルはこれらEXCELの機能だけでは実現できないことをするのでしょうか?

  • エクセルのピボットテーブルで新しい集計方法

    エクセルのピボットテーブルを使っていろいろ集計を出しています。集計方法は決まった集計方法の中から選択するようになっていますが、(例:最大値、データの個数・・・etc)新しい集計方法を加えたいと思っています。具体的には、Large関数のようなもので、二番目に大きい値、三番目に大きい値を出したいのですが、そんなことはできますか。または、ピボットテーブルを使わないとしたら、何か方法はありますか。Excelのバージョンは2000、OSはWin2000です。

  • Excelのピボットの項目をVBAで追加するには

    ExcelでRaw dataからVBAでピボットテーブルを作成しています。 現在のピボットの項目には「個別の売り上げ金額」と「個別の売り上げ目標」が個人ごとに集計されているところまでできています。 私はこれから個人ごとの達成率(「個別の売り上げ金額」/「個別の売り上げ目標」 )を追加で出したいと考えています。 VBAを使わずに手動であればピボットフィールドテーブルツールの集計フィールドから「個別の売り上げ金額」/「個別の売り上げ目標」を行って簡単にできなくもないですが、VBA(コード)で達成率まで出したいです。 今回のようにすでにピボットで出ている項目から追加して新たな項目をVBAで出すにはどのようにすればよいでしょうか? 参考となるサイトなどでもあれば教えて下さい。

  • Excelのピボットテーブル データ範囲について

    Excelのピボットテーブルについて質問です。 ピボットテーブルのデータ範囲内に、 非表示になっている行があります。 その状態でピボットテーブルを作成すると 非表示行もデータも含まれて集計されてしまいます。 非表示行は含めずにピボットテーブルを作成する方法は ないのでしょうか? 非表示行の特定が難しいため(複数あり)データ範囲から 外すのは難しいかと思います。。 Excelは2007です。 よろしくお願いいたします。

  • クロス集計 エクセル

    アクセスにはクエリにクロス集計がありますが エクセルにもクロス集計と言う機能があるのでしょうか? エクセル2010を持っています。 ピボットテーブルの事を クロス集計と呼ぶのでしょうか?

  • エクセルデータをVBAを使って集計する方法

    エクセルのデータを次のように集計したいのですが、良い方法を教えて下さい。VBAに組み込みたいのですが。 元のデータは次のような項目に分かれています。 (納入日)(契約番号)(取引先)(商品名)(数量)(金額)  納入日毎に1件づつ入力されているのですが、これを、取引先別、商品別に数量と金額を集計したいのです。 集計項目が2項目あるため、ピボットテーブルで集計すると、1件が2行になってしまい、後の加工がしづらいのです。 今のところ、ピボットテーブルで数量と金額を別々に集計して、後でVLOOKUP等の関数を使って表を1つする事を考えているのですが、もっと良い方法をご存知ないでしょうか。

  • エクセルのピボットテーブルでデータエリアにおける集計の方法はデフォルト

    エクセルのピボットテーブルでデータエリアにおける集計の方法はデフォルト以外に増やせないのでしょうか?

専門家に質問してみよう