web-dev-qa-db-ja.com

SQL ServerからExcelにデータをコピー/貼り付けすると、テキストが複数の列に分割されますか?

SQL Server 2005の結果グリッドからExcel 2007スプレッドシートにデータを貼り付けるときに問題が発生しました。

SQL Serverに2つの列(数値列とテキスト列)を返すクエリがあります

ここの1台のコンピューターで、喜んでコピー(右クリック>コピー)してから、右クリックしてExcelスプレッドシートに貼り付けます。問題ない。

ここで別のコンピューターでExcelに貼り付けようとすると、テキスト列が分割され、単語間のスペースに基づいてテキストが複数の列に貼り付けられます。

たとえば、行の1つが...

貼り付けてください

...そこでExcelに貼り付けると、テキストが分割され、各WordがExcel内の個別の列に貼り付けられます。

SQL ServerとExcelの両方のオプションを、問題なく動作するコンピューターと比較してみましたが、違いはありません。

どんなアイデアでも歓迎

ありがとう

14
Paul

最近テキストを列に使用した場合は、それらの設定が貼り付け操作に適用されます。私はこれがExcel 2007より前に起こったことを覚えていませんが、そうかもしれません。コピーと貼り付けを再開する前に、常に戻ってタブ区切りに戻す必要があります。

21
Justin Moore

結果を貼り付ける前:Data→Text to Columns

  • 元のデータ型:チェック区切り
  • 次へ
  • 区切り文字:チェックを外すスペース
  • 次へ
  • 終了

最後に結果を貼り付けます。

7
Hector Negrete

問題のあるコンピューターでExcelスタートアップテンプレートを置き換えてみましたか?貼り付け操作によってトリガーされるマクロが定義されている場合があります。マイクロソフトサポート技術情報924460によると、テンプレートは次の場所に保存されています。

デフォルトでは、ユーザーテンプレートファイルは次の場所に保存されています。

  • Windowsの場合XP C:\ Documents and Settings \\ Application Data\Microsoft\Templates
  • Windows VistaまたはWindows 7ではC:\ Users \\ AppData\Roaming\Microsoft\Templates
1
user87883

Excelを終了して再起動し、スプレッドシートを再読み込みすると、テキストから列へのオプションがクリアされるので、貼り付けが期待どおりに機能することがわかりました。

Hectorの答えは、Excelを終了する必要がないという点でいいですが、これも機能し、非常に迅速かつ簡単です。

1
Gundark

テーブルにnvarchar(max)フィールドが含まれている場合は、そのフィールドをテーブルの一番下に移動します。フィールドタイプがnvarchar(max)と異なる場合は、問題のフィールドを識別して、同じ方法を使用します。それを保存。 SQLでテーブルを再選択します。変更せずに保存できない場合は、TOOLSで関連する警告を一時的にオフにすることができます。オプション。この方法にはリスクがありません。ヘッダー付きのSQL GRID表示をコピーしてExcelに貼り付けます。データは引き続きキャリッジリターンを示す可能性がありますが、少なくともデータはすべて同じ行にあります。次に、すべての行レコードを選択し、ID列でカスタムソートを実行します。これで、すべての記録が損なわれず、連続しているはずです。

0
XGIS

私が時々遭遇する同様の状況は、ユーザーがコメント用の列でキャリッジリターン/ラインフィード文字を使用したときに、行が複数の行に分割されることです。 SQL 2012/2014 here で機能するソリューションを見つけました。

これは、SQL Serverの以前のバージョンの問題ではないようです。リンクをたどらない場合は、SQL内で問題を修正する方法を次に示します。

REPLACE(REPLACE([YourColumnHere], CHAR(10), ''), CHAR(13), '')
0
fujiiface

クリックオプションを貼り付けた後のExcelのこの問題の解決策。

「テキストインポートウィザードを使用」->区切り->次「タブ」をチェックし、「連続デリミタを1つとして扱う」をチェック->次完了

0
Adil