2

これはおそらく簡単な質問ですが、Excel で何をしているのか本当にわからないので、誰かが助けてくれることを願っています。

私のタスクに関連する 2 つの列を含む Excel スプレッドシートが与えられました。1列目は「外部ID」、2列目は「内部ID」です。内部 ID をキーとしてデータベースから (さまざまな結合を使用して) 一連のデータを選択する必要がありますが、このデータはすべて外部 ID にリンクする必要があり、内部/外部間の唯一のリンクは次のとおりです。このスプレッドシート。

たとえば、スプレッドシートの行が次のようになっているとします。

ExtID    IntID
AB1234   2

データベース内の ID #2 のアイテムに関連するすべてのデータを選択する必要がありますが、データベースから "AB1234" を取得する方法がないため、スプレッドシートを使用してこのデータを "AB1234" に関連付ける必要があります。

これを達成する最も簡単な方法は何ですか? Excel のバージョンは Excel 2007 で、データベースは Oracle です (該当する場合)。

私は本番データベースへの読み取り権限しか持っていないので、テーブルを作成し、スプレッドシート データをインポートして結合することはできません。

4

5 に答える 5

1

コメントに基づいて編集されました

1 - MS Access を使用して、Excel シートをテーブルとしてインポートします。

2 - MS Access 内からもデータベース テーブルにリンクします。

[外部データ] タブ -> [その他のデータ ソース] -> [ODBC 接続] -> [自分のものを選択] -> [必要なテーブルを選択]

3 -必要な値を比較する Access クエリを作成する

作成 -> クエリ デザイン -> 必要なテーブルをドロップし、それらの間に線をドラッグしてリレーションシップを作成し、[実行] をクリックします。

于 2009-05-04T20:13:09.920 に答える
0

通常、私はこのようなタスクを実行するために、コピー アンド ペーストと、マクロを備えた優れた列モード エディターを使用します。Excel ファイルが 2 つしかない場合は、問題なく動作します。

于 2009-05-04T19:51:16.433 に答える
0

私は Oracle に詳しくありませんが、多くのデータベースではテーブル名の先頭に # などを付けて一時テーブルを作成できることは知っています。他のものには、ものを作成できる一時データベースがあります。選択以外に何もできない場合でも、一時テーブルを作成できる場合があります。

それを行うアクセス権がある場合は、JosephStyons が提案する機能を実行し (#2)、レコードを一時テーブルに挿入し、それに基づいてクエリを実行します。

于 2009-05-04T20:27:12.400 に答える
0

Excel および VBA では、ActiveX データ オブジェクト (ADO) を特定のデータベースの OLE DB プロバイダーを使用する高度な方法として使用できます。これにより、データベースからデータを読み取ることができ、そのデータをクエリして結果をスプレッドシートに保存できます。

Oracle OLE DB プロバイダー
ADO ガイド

于 2009-05-05T01:42:54.730 に答える
0

多くは、利用可能なツールにどれだけ精通しているかによって異なります。

IntID を使用してこれらのレコードを簡単に検索できる、使い慣れたツールはありますか? もしそうなら、クエリを実行して結果を元のスプレッドシートの IntID の列の右側の列に貼り付けてもらえますか?

その場合、次の列を含むスプレッドシートが必要になります: ExtID (元の) IntID (元の) IntID (Oracle から) Col1 (Oracle から) Col2 (Oracle から) など....

于 2009-05-04T19:59:49.050 に答える