• ベストアンサー

【Excel2007、外部データの取り込み、Microsoft Query】

Excel2007を用いて、Microsoft Query経由でMy SQLに接続してデータを取得して表示しています。その際に、SQL文を発行して条件を絞ったうえでSELECTしています。 このSQL文なのですが、都度都度ウィザードを立ち上げて入力するのではなくて、セル参照のような形で自動的に、セルをいじると自動的にSQL文が変更されてデータも更新されるようにすることは可能ですか。 (もしくは、だーっと並んでいるデータから =SQL(???) というような関数でデータを抽出できる関数を提供しているアドインなどをご存知でしたら教えてください。)

  • xojan
  • お礼率60% (20/33)

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 それは、パラメータクエリにすればよいと思います。 セルに条件を入れれば、入れたと同時に、データベースから抽出します。 Microsoft Help http://office.microsoft.com/ja-jp/excel/HP102161131041.aspx#1 Excel豆知識41: エクセル:外部データの取り込み(パラメータクエリの利用) http://www11.plala.or.jp/koma_Excel/contents6/mame6041/mame604101.html

xojan
質問者

お礼

ありがとうございます!!! できました、できました。毎回ウィザード開かずともこれで関数の如くに自動化できます。入力から出力までのフローをほぼ全自動化するための目星がつきました。 どうもありがとうございました。まさに求めていた回答そのものです。

その他の回答 (1)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

こんにちは。 >=SQL(???) というような関数でデータを抽出できる関数を提供しているアドイン こちらに関しては、『ODBCアドイン』の『SQL.REQUEST関数』というのがありますが http://office.microsoft.com/ja-jp/excel/HP100624791041.aspx >SQL.REQUEST 関数は、Microsoft Office Excel 2007 ではサポートされていません。 との事です。 (『XLODBC.XLAをインストール』すれば2007でも使えるようになるのかどうかまでは試していません) 2000で一度試してみた事がありますが、実用的かどうかは使用する目的にもよるかも。 なので、既にWendy02さんがお書きになられてますが、パラメータクエリが良いでしょうね。 条件が複雑に変わるようなら、VBAを学習してマクロ対応したほうが色々と便利だとは思いますが。

xojan
質問者

お礼

どうもありがとうございます。 私も検索して、SQL.REQUEST関数にたどり着いたのですが、EXCEL2007に未対応というのが残念でした。無理やり解凍してアドインをいれたまではよいのですが、使い方がわかるまでに時間がかかりそうで。。。(だめですね) VBAを利用したほうが便利だというのは仰るとおりです。ただ、(1)自分が主に使うわけではない (2)ほかのパソコンでも動作してほしい という点からするとできる限りオリジナルな関数やマクロを入れたくなかったのです。 回答ありがとうございました!

関連するQ&A

  • 【Excel 2007】クエリが実行できません

    データタブ⇒その他のデータソース⇒Microsoft Query⇒クエリウィザードを使ってデータ抽出を行なっています。 ブックはネットワーク上に置いています。最初は問題なくデータ抽出できていたのですが、突然、 「ODBC Excel ドライバ ログインの失敗 インストール可能な ISAM ドライバが見つかりませんでした」 というエラーが出てしまいクエリが実行できません。どのようにすれば元のようにデータ抽出できるようになるのでしょうか?教えて下さい。

  • SQLクエリを外部から読み込む

    PHPでmysql_query関数を使ってSQLを打つ際、クエリの内容を外部ファイルから読み込むことは可能でしょうか? hoge.sqlというファイルにSQL文を書いて、その内容をmysql_queryに渡したいのですが。

    • ベストアンサー
    • PHP
  • AccessのクエリとExcelの外部データの取り込み機能について

    AccessのクエリとExcelの外部データの取り込み機能について 質問させてください。 Access初心者です。 クエリの抽出条件でnot likeを使うと Accessで実行したときには正常に動作するんですが、 Excelの外部データの取り込みのAccessデータベースを選択してExcelへ出力すると 正常に出力されません。 具体例ですが、 ---------------------------------- 住所フィールドには東京都の自治体の名前 個人フィールドには担当者の名前 ---------------------------------- が入ってるとします。 クエリの抽出条件は以下のような感じです。 ---------------------------------- 個人フィールド,住所フィールド 鈴木,not like "*八王子市*" 斉藤, 田中, ---------------------------------- そうするとAccessのクエリの実行結果では 鈴木さんの八王子市を抜いたデータ 斉藤さんの全データ 田中さんの全データ が出力されると思います。 しかし、Excelの外部データ取り込みを使うと 鈴木さんの全データ 斉藤さんの全データ 田中さんの全データ が出力されてしまいます。 どうすれば正常出力できるのでしょうか? Accessからコピー&ペーストしてExcelに貼り付けるしかないのでしょうか? (参考) ・使っているOfficeは2007SP2です。

  • Excelの外部データの取込み抽出条件

    Excel2000にて外部データの取込み(新しいクエリの作成)機能 で集計を行おうとしております。 ウィザード機能にて抽出条件を26項目追加しましたが、 「MSQRY32.EXE アプリケーションエラー メモリが"read"になることはできません」 のメッセージを出力し集計を中断してしまいます。 (せっかく作成した抽出条件も消えてなくなる) なぜこの現象が発生しているか、どうすれば回避できるか分かる方 よろしくお願いします!

  • クエリで「データ型が一致しません」と表示される

    クエリ1とクエリ2をクエリ3で結合するとクエリ3で「データ型が一致しません」と表示されます。 クエリ1のSQL文 SELECT Trim(Replace([PC管理台帳.使用者氏名]," ","")) AS 式1, PC管理台帳.新PC名, PC管理台帳.部署名, PC管理台帳.マシンベンダ名, PC管理台帳.マシンモデル FROM PC管理台帳; クエリ1では[使用者氏名]の苗字と名前のスペースを置換しました。 クエリ2のSQL文 SELECT 職員アカウント.職員番号, Trim(Replace([職員アカウント.氏名]," ","")) AS 式1, 職員アカウント.パスワード, 職員アカウント.メールアドレス FROM 職員アカウント; クエリ2では[氏名]の苗字と名前のスペースを置換しました。 クエリ3で[使用者氏名]と[氏名]が一致しているものを抽出したいです。 ちなみにクエリ3のSQL文は SELECT [クエリ2].[式1], [クエリ2].[職員番号] FROM クエリ1 INNER JOIN クエリ2 ON [クエリ1].[式1]=[クエリ2].[式1]; これでクエリ3をひらくと 「データ型が一致しません」 と表示されます。 どなたかアドバイスお願いします

  • Excel2003からAccess2007のデータの取り込みについて

    Excel2003からAccess2007で作成しているデータを取り込もうとしているのですが、うまくいきません。クエリのウィザードでテーブル名等は表示されるのですが、いざデータを取り込もうとすると、”ファイル名.mdbが見つかりません”というエラーが表示されます。そもそも拡張子がmdbというファイルはないのですが、回避する方法があるのでしょうか?

  • 【Excel 2007】クエリが実行できない

    データタブ⇒その他のデータソース⇒Microsoft Query⇒クエリウィザードを使ってデータ抽出を行ないました。同一ブック内に元となるデータシート、抽出データシートを作成しています。こここまではうまくできました。しかし、作成したブックを同一パソコンの別フォルダに移動したところ、エラーが出てデータ接続ができません。具体的には、「実行時エラー'1004' 一般エラー ODBCエラー」がでます。ブックを元の場所に戻すとエラーが出ずきちんと集計できます。作成したブックを移動してもデータ接続を行い、クエリがきちんと実行できるようにするにはどうしたら解決するでしょうか?もう一度ウィザードからやるのは大変です。教えて下さい。

  • ACCESSクエリーで特定の項目を更新したい

    ACCESSでテーブルから抽出したクエリーの特定の列だけに 1という数字をふりたいのですが、 update 抽出元のテーブル set 任意のセル = 1 where クエリー名 更新クエリーで上記SQLを設定しても、クエリー実行時に、 バラメータを要求され、 全てのテーブル列に1がふられます。 式が違うのでしょうか。 デザインビューにしてSQLビューに切るかえる。 select 列 from 抽出元のテーブル where 抽出の条件 ; みたいなデータです。 where の前を書き換えます。 select 列 from 抽出元のテーブル の部分を update 抽出元のテーブル set 任意のセル = 1 としてください。 最終的には以下のイメージ update 抽出元のテーブル set 任意のセル = 1 where 抽出の条件 ;

  • Excel2007:Microsoft quaryで外部データ(別のExcelファイル)からデータを抽出するときの「見出し行」の扱いを任意に設定したい

    Excel2007でMicrosoft quaryを使用して外部データ(別のExcelファイル)からデータを抽出するとき、ウィザードに従って「クエリに含むデータの列」を選択しますが、その時、抽出元のエクセルファイルの1行目に入力したデータから判断して選択することになると思います。 やりたいことは、抽出元のデータでは2行目に見出しを設定しているので、2行以降の行のデータを抽出したい、つまり2行目を見出しの行とみなして1行目を抽出の範囲から除外したいというこのなのです。(ちなみに一行目には2行目以降のデータについて簡単な集計のための数式や関数を入力しています。) 今までの経験からしてExcelは大体において一行目を見出しとみなすようにできているという印象なのですが、おわかりの方がいらっしゃいましたら教えていただけると助かります。よろしくお願いします。

  • ACCESS更新クエリー活用方法について

    ACCESSでテーブルから抽出したクエリーで表示された特定の列だけに 1という数字をふりたいのですが、 update 抽出元のテーブル set 任意のセル = 1 where クエリー名 上記方法、更新クエリーで上記SQLを設定しても、クエリー実行時に、 バラメータを要求され、結果 全てのテーブル列に1がふられます。 式が違うのでしょうか。あくまでもクエリーで抽出されたものだけに 1をふりたいのですが。 デザインビューにしてSQLビューに切るかえる。 select 列 from 抽出元のテーブル where 抽出の条件 ; みたいなデータです。 where の前を書き換えます。 select 列 from 抽出元のテーブル の部分を update 抽出元のテーブル set 任意のセル = 1 としてください。 最終的には以下のイメージ update 抽出元のテーブル set 任意のセル = 1 where 抽出の条件 ;

専門家に質問してみよう