VBA+SQL求組合

A列數(shù)據(jù)兩兩組合识脆,最接近3000的組合是设联?
A列數(shù)據(jù)有重復(fù)!W莆妗离例!


數(shù)據(jù)

寫(xiě)法1,A列分為a悉稠,b兩表宫蛆,兩兩組合,減去3000的猛,等于0的就是符合條件的耀盗。

Sub 配對(duì)()
    Dim cnn As Object, rs As Object, LastRow&, SQL$
    Set cnn = CreateObject("ADODB.Connection")
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    cnn.Open "Provider = Microsoft.ace.Oledb.12.0;Extended Properties =Excel 12.0;Data Source =" & ThisWorkbook.FullName
    SQL = "select DISTINCT * from (select a.組合,(b.組合,a.組合+b.組合-3000) as 差 from"
    SQL = SQL & "[sheet1$a1:a" & LastRow & "] a,[sheet1$a1:a" & LastRow & "] b where a.組合<>b.組合) where 差=0 "
    Set rs = cnn.Execute(SQL)
    With Sheets("sheet1")
        .Range("j1:L100000").ClearContents
        .Range("j1").CopyFromRecordset rs
    End With
    rs.Close
    cnn.Close
    Set rs = Nothing
    Set cnn = Nothing
End Sub
  • 1、先求兩兩組合及其減去3000的差值
select a.組合,b.組合,(a.組合+b.組合-3000) as 差 from
 [sheet1$a1:a" & LastRow & "] a,
[sheet1$a1:a" & LastRow & "] b 
where a.組合<>b.組合
  • 2卦尊、在上表提取數(shù)據(jù)袍冷,差=0,的就是兩兩組合等于3000的猫牡,再去重復(fù)。
select DISTINCT * from 
(
select a.組合,b.組合,(a.組合+b.組合-3000) as 差 from 
[sheet1$a1:a" & LastRow & "] a,
[sheet1$a1:a" & LastRow &"] b 
where a.組合<>b.組合
) 
where 差=0 

寫(xiě)法2:

  • 1邓线、先對(duì)原始數(shù)據(jù)用Distinct去重復(fù)
  • 2淌友、兩兩配對(duì),篩選和3000的差等于0的。
    為方便引用,用SQL server寫(xiě)了個(gè)CTE的,否則要寫(xiě)2個(gè)子查詢洼怔,感覺(jué)代碼好長(zhǎng)蜈出。
with CTE_Test as 
(
select distinct * from dbo.Sheet1$
)

select c.* from 
(
select a.組合 as 組合1 ,b.組合 as 組合2,(a.組合+b.組合-3000) as 差

from CTE_Test as a,CTE_Test as b 

where a.組合<>b.組合
) c

where c.差 = 0

order by 組合1

EXCEL示例文件下載:
鏈接: http://pan.baidu.com/s/1pKXiivD 密碼: f2qc

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市宝踪,隨后出現(xiàn)的幾起案子蔼紧,更是在濱河造成了極大的恐慌俭嘁,老刑警劉巖拨拓,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肴颊,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡渣磷,警方通過(guò)查閱死者的電腦和手機(jī)婿着,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)醋界,“玉大人竟宋,你說(shuō)我怎么就攤上這事⌒畏模” “怎么了丘侠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)逐样。 經(jīng)常有香客問(wèn)我蜗字,道長(zhǎng),這世上最難降的妖魔是什么官研? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任秽澳,我火速辦了婚禮,結(jié)果婚禮上戏羽,老公的妹妹穿的比我還像新娘担神。我一直安慰自己,他們只是感情好始花,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布妄讯。 她就那樣靜靜地躺著,像睡著了一般酷宵。 火紅的嫁衣襯著肌膚如雪亥贸。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,084評(píng)論 1 291
  • 那天浇垦,我揣著相機(jī)與錄音炕置,去河邊找鬼。 笑死男韧,一個(gè)胖子當(dāng)著我的面吹牛朴摊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播此虑,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼甚纲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了朦前?” 一聲冷哼從身側(cè)響起介杆,我...
    開(kāi)封第一講書(shū)人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鹃操,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后春哨,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體荆隘,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年悲靴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臭胜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡癞尚,死狀恐怖耸三,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浇揩,我是刑警寧澤仪壮,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站胳徽,受9級(jí)特大地震影響积锅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜养盗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一缚陷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧往核,春花似錦箫爷、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至衩婚,卻和暖如春窜护,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背非春。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工柱徙, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人奇昙。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓坐搔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親敬矩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容