彰化一整天的論壇

 找回密碼
 立即註冊
搜索
查看: 11126|回復: 32

在Excel快速合併相同資料的其它欄位(2欄比對)

[複製鏈接]
發表於 2013-3-6 15:51:17 | 顯示全部樓層 |閱讀模式
本帖最後由 imingho 於 2015-2-5 17:34 編輯

一般處理輸出的資料很多部分的欄位都相同只是有一兩個欄位會有差異,這時候如果是管理者要看或是列印都很麻煩,如果可以把不同的那一個欄位合併成一欄,不僅列印時省紙,給其他人看時也很精簡,但是Excel沒有這樣的功能,所以用Excel寫了這麼一個工具,我用學校的課程來舉例。

圖文說明:http://272586.blogspot.tw/2009/0 ... mment=1362417030605

檔案名稱:mergertool_v2.xls

2015/2/5               增加可以選擇要不要有合併欄位
2015/2/3        修正合併欄位如果太長會出現#號(mergertool_v2.xls)
2013/10/25      新增自訂多欄功能檔案(mergertool_adv.xls)
2013/9/12        修正有些0開頭的欄位0會消失
2013/3/6           修正合併欄位如果是數字會出現錯誤

免費下載(mergertool_v2.xls ):http://download.bestdaylong.com/f3.htm
免費下載(mergertool_adv.xls ):http://download.bestdaylong.com/f4.htm



excel_merger_tool_01.png
1.處理前資料
excel_merger_tool_02.png
2.處埋後資料
excel_merger_tool_03.png
3.設定畫面

mergertool_v2.xls

53.5 KB, 下載次數: 25

售價: 2 金錢  [記錄]

mergertool_v2.xls

mergertool_adv.xls

56.5 KB, 下載次數: 9

售價: 5 金錢  [記錄]

mergertool_adv.xls

回復

使用道具 舉報

 樓主| 發表於 2015-2-10 20:20:50 | 顯示全部樓層
audreywu1977 發表於 2015-2-10 12:08
您好,
附上處理前/處理後的檔案
規則: 同樣的料號,列合併(數量加總, 位置合併) ...

audreywu1977您好,
    目前您要的功能是有的,只是它的加總欄位在最後一欄.您可以先將資料排序再執行就可以.
20150210_02.jpg

1.您依照圖表中的設定執行看看.

mergertool_v2.xls

57 KB, 下載次數: 6

售價: 1 金錢  [記錄]

回復 支持 2 反對 0

使用道具 舉報

 樓主| 發表於 2013-10-25 11:15:55 | 顯示全部樓層
coccolith 發表於 2013-10-24 17:24
imingho您好
我上傳了一個測試檔案
想要比較第1和第2欄(A和B column),然後用逗號合併第3到第7欄(C到G colu ...

您好,
     我修改成另一個可以自訂多欄位功能的版本mergertool_adv.xls,麻煩您下載該版本.
merger_tools_01.png

1.設定畫面,比較欄位的AB欄要先排序


merger_tools_02.png

2.處理前


merger_tools_03.png

3.處理後

回復 支持 1 反對 0

使用道具 舉報

 樓主| 發表於 2013-9-12 11:24:41 | 顯示全部樓層
2013/09/12程式碼:

  1. Private Sub cmdClear_Click()
  2.     Sheet2.Cells.Clear
  3. End Sub

  4. Private Sub cmdCompareab_Click()
  5.     Dim n As Integer '欄位數
  6.     Dim count_a As Double  '資料ab的筆數
  7.     Dim temp As String
  8.    
  9.     Sheet2.Activate
  10.     count_a = Selection.SpecialCells(xlCellTypeLastCell).Row
  11.     n = Selection.SpecialCells(xlCellTypeLastCell).Column
  12.    
  13.     Sheet1.Activate
  14.     m = Sheet1.Range("b4")  '合併第m個欄位
  15.     a = 1
  16.     b = 0
  17.     c = Sheet1.Range("b2")  '比對第一個欄位
  18.     d = Sheet1.Range("b3")  '比對第二個欄位
  19.     calc_field = Sheet1.Range("b5")
  20.     symbol = Sheet1.Range("b1") '合併符號
  21.    
  22.     Sheet3.Cells.Clear
  23.    
  24.    
  25.     For j = 1 To n
  26.         Sheet3.Cells(1, j) = Sheet2.Cells(1, j)
  27.     Next

  28.    
  29.     For i = 2 To count_a
  30.         temp1 = ""
  31.         temp2 = ""
  32.         
  33.         If c > 0 Then
  34.            temp1 = Sheet2.Cells(i, c)
  35.            temp2 = Sheet2.Cells(i - 1, c)
  36.         End If
  37.         
  38.         If d > 0 Then
  39.            temp1 = temp1 & Sheet2.Cells(i, d)
  40.            temp2 = temp2 & Sheet2.Cells(i - 1, d)
  41.         End If
  42.         
  43.         If temp1 <> temp2 Then
  44.             a = a + 1
  45.             For j = 1 To n
  46.                
  47.                 Sheet3.Cells(a, j) = Sheet2.Cells(i, j)
  48.             Next
  49.         Else
  50.             Sheet3.Cells(a, m).NumberFormatLocal = "@" '將儲存格試為文字格式
  51.             Sheet3.Cells(a, m) = Sheet3.Cells(a, m).Text & symbol & Sheet2.Cells(i, m).Text
  52.         End If
  53.         
  54.         If calc_field > 0 Then
  55.             Sheet3.Cells(a, n + 1) = Sheet3.Cells(a, n + 1) + Sheet2.Cells(i, calc_field)
  56.         End If
  57.         
  58.         DoEvents
  59.         
  60.         Sheet1.Range("b6") = i / count_a
  61.     Next
  62.    
  63.     MsgBox "處理完畢!!,請切換到活頁[處理後]查看結果", vbOKOnly, "彰化一整天的blog(http://272586.blogspot.com/)"
  64.    
  65. End Sub
複製代碼
回復 支持 反對

使用道具 舉報

發表於 2013-10-24 15:49:43 | 顯示全部樓層
示範檔案裡面合併的欄位只能填寫一個,但是我想要合併的不只一欄(大概5欄),但是不知道怎麼修改您的VBA,請問要如何操作呢?非常感謝您喔!
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2013-10-24 16:10:20 | 顯示全部樓層
coccolith 發表於 2013-10-24 15:49
示範檔案裡面合併的欄位只能填寫一個,但是我想要合併的不只一欄(大概5欄),但是不知道怎麼修改您的VBA,請 ...

coccolith您好,
     是否可以上傳一個測試的Excel檔案資料,我幫您改看看是否可以用.
回復 支持 反對

使用道具 舉報

發表於 2013-10-24 17:24:24 | 顯示全部樓層
imingho您好
我上傳了一個測試檔案
想要比較第1和第2欄(A和B column),然後用逗號合併第3到第7欄(C到G column)
https://mega.co.nz/#!Up5RhQpa!dA ... QK57c00YBO58BwV_2Vo
謝謝您!
回復 支持 反對

使用道具 舉報

發表於 2013-10-25 14:27:59 | 顯示全部樓層
imingho您好,
真是太厲害了!
不過我發現若是A(English name)或B欄(Chinese name)有遺漏值(空白)的話,資料無法合併
因為要跑的資料大概有上千筆 無法每一筆資料都確認A和B都有
如果希望在A或B欄有遺漏值的情況下還能合併後面的欄位的話
這個有辦法修正嗎?
謝謝您!
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2013-10-25 14:38:06 | 顯示全部樓層
coccolith 發表於 2013-10-25 14:27
imingho您好,
真是太厲害了!
不過我發現若是A(English name)或B欄(Chinese name)有遺漏值(空白)的話,資 ...

您可以用A欄比對.B欄會自動抓第一筆,
或是您可以利用
Excel的特殊填滿效果
http://blog.bestdaylong.com/2008/04/excel.html
回復 支持 反對

使用道具 舉報

發表於 2013-10-29 09:40:08 | 顯示全部樓層
工作上剛好有需要

希望可以下載~
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2013-10-29 09:49:43 | 顯示全部樓層
安軒 發表於 2013-10-29 09:40
工作上剛好有需要

希望可以下載~

您好,
     請問您是要下載那一個版本,一般版本金錢2元的,只要加入會員就可以下載,另外進階版是要金錢5元,您只要明天登入就可以下載.

discuz如何查看所獲金錢
http://discuz.bestdaylong.com/fo ... 30748&fromuid=2

回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

 ㄚ母滴雞湯
 員林香純滴雞精

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  |网站地图

GMT+8, 2017-12-12 14:21 , Processed in 0.113691 second(s), 16 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表