2017-01-19 1 views
-1

Excelに任意の列のリストが1つあります。このリストをSQLサーバーのwhereステートメントに入れる必要があります。
手動でこれを行う方法があります:リストはA1 until A40から開始します。 B1="'"&A1&"',"を使用してください。これは、リストの各要素を'',に囲みます。次のC1=B1 and C2=C1&B2..C40=C39&B40
リストの最後の要素には、,が手動で削除されます。Excelで長い1列のリストconvert SQLの場合

sample excel

Where recipID in ('1865','1733','1990')

私は年に1,2回これを行う場合はすべてが良いです。しかし、ますます日常的になりつつあります。マクロを記録してビルドすることができました。しかし、SQLのデータを準備するだけでなく、クリップボードにコピーする2in1マクロを探しています。リストを選択してマクロを実行し、SQLに貼り付けるだけです。

+0

あなただけのSQLでテーブルにExcelから「テーブル」(すなわち、1列のリスト)を貼り付け、 'JOIN'文であることを使うことができませんか? – YowE3K

+0

はい私はできます!アイデアありがとう! –

答えて

0

あなたはこの配列数式使用することができます。

=LEFT(CONCAT("'"&A1:A40&"',"),LEN(CONCAT("'"&A1:A40&"',"))-1) 

式とCtrlキーを押しながら+ Shiftキーを入力+配列数式として定数配列を入力してENTERを。 (あなたは式の周りで{}が見えるときにそれが働いていることを知っています)。

Guidelines and examples of array formulas

enter image description here

またその周りに普段と同じように、括弧を追加することができます。

="("&LEFT(CONCAT("'"&A1:A40&"',"),LEN(CONCAT("'"&A1:A40&"',"))-1)&")" 

CONCAT function

適用対象:


Android携帯用のAndroidタブレットエクセルモバイルExcel用iPhone Excel用iPadのExcel用のMacのエクセルオンラインExcel用エクセル2016エクセル2016

CONCATの代替品はStringConcat() by Chip Pearsonです。同じ結果が得られます。

enter image description here

+0

私は本当にフィードバック、Excelの式、画像、およびガイドのリンクに感謝します。私は2013バージョンを使用している言及を忘れていましたが、唯一の違いはconcat()をconcat()よりも使用することです。 concatenate()のトピックでは、連結しているとは思われません(A1:A5)。連結(A1、A2、A3、A4、A5)が必要です。これは2013年以前の問題ですか? –

+0

[Chip PearsonによるStringConcat()を使用した代替バージョンを含むように更新されました(http://www.cpearson.com/excel/stringconcatenation.aspx) – SqlZim

関連する問題