- 締切済み
ExcelのSQLの使い道
教えてください。 Excel VBAでSQLを使う方法があると思います。 が、ExcelでSQLを使うメリットが良く飲み込めていません。 Excelならピボットテーブルの集計でもそこそこできるような気がします。 ExcelのSQLならではの利点を教えてください。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
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/17766)
SQL(というかリレーショナルデータベースね)を使えるようになるとExcelのピポットテーブルなんて使いたくなくなります。 Excelでそういう使い方をするということはシートに入力するデータ構造が曖昧なときには便利ですけど、そういう使い方をしているということは扱うデータを精査していないということでその場の思いつきでテーブル構造を変えたり列に入力するデータが不揃いになったりするので作成者以外が使うときに非常に困ることがあります。 その点、RDBMSはそのへんの整合性やルールが明確なので田も直ぐに利用ができる。逆に独学でExcelを使いこなしている人はRDBMSは不便だという。 入り口としてはAccessが妥当かと思いますが、扱うデータ件数が多かったり自動化をしたいときにはSQL ServerやOracleを使用することになります。 RDBMSを使い慣れてくるとExcelは帳票作成ツールにしか見えませんwww ※あくまでも個人的感想です!
- papis
- ベストアンサー率70% (3673/5204)
SQLはそもそもRDBからデータを取り出す為の言語なので、 Excel単体で事が済む場合には SQLを使うメリットというか意味も無いでしょう。 その取り出したデータの結果を Excelでいろいろ処理すると都合が良い(たとえばグラフ化)ときに、 あるいは、リアルタイムで変化するデータの、現在を可視化したいなどでは、 Excelから直接RDBの情報を引っ張ってきて、それをそのままグラフ化する といった場合に意味がある事だと思います。
- szk9998
- ベストアンサー率45% (1026/2241)
Excelは所詮はRDBではないですから。 私はRDBやAccessなどの接続に使います Excelで計算していては、データの保持も不安ですし サンプル数が多ければRDBへ命令を出して結果だけ Excelで受け取ったほうがはるかに高速です そのためのものでは?と考えてましたが・・・