Board logo

標題: [發問] 将A列对应的B列用函数不重复的列出在D列? [打印本頁]

作者: flying008    時間: 2014-2-28 15:07     標題: 将A列对应的B列用函数不重复的列出在D列?

本帖最後由 flying008 於 2014-2-28 15:19 編輯

各位大大平安!

        请看我的附件表格sheet2.
       A列为生产批号[有重复], B列为生产批号所要用到的材料名称[有重复], 现在要在E列里把A列生产批号对应的B列材料名称用函数不重复的列出, 想用index+match函数实现, 但是这里有2个条件 , 而且都有重复数值, 实在想破头了, 请大大指教D列用函数如何写公式, 谢谢!


     为什么我现在上传不了附件?
============
A列                        B列                             C列                          D列
生产批号              材料名称                   生产批号                  材料名称
15003                   底板                           15002                      底板
15003                   底板                           15002                      底板
15003                   底板                           15002                      底板
15003                   底板                           15002                      底板
15003                   底板                           15002                      底板
15003                   底板                           15002                      底板
15003                   底板                           15002                      底板
15003                   底板                           15002                      底板
作者: flying008    時間: 2014-2-28 15:25

为什么我现在上传不了附件?
第1楼的表格是错误的, 请大大看下表, D列的材料与C列对应, 谢谢!
============
A列                        B列                             C列                          D列
生产批号              材料名称                   生产批号                  材料名称
15003                   底板                           15002                      底板
15002                   底板                           15002                      电极
15004                   芯片                           15002                      柱子
15003                   电极                           15002
15002                   电极                           15003                      底板
15002                   底板                           15003                     电极
15005                   外壳                           
15002                   柱子
作者: flying008    時間: 2014-2-28 15:50

[attach]17624[/attach]
作者: yen956    時間: 2014-3-1 13:24

回復 3# flying008
(1)你的意思是:
140102  底板-→140102  底板
140106  底板  140102  晶片
140102  晶片  140106  底板
140102  底板

(2)或是:
140102  底板-→140102  底板
140106  底板  140102  晶片
140102  晶片  
140102  底板
作者: flying008    時間: 2014-3-1 16:29

回復 4# yen956

大大平安!

C列是手动输入的批号, 需要用函数公式在D列中返回对应的不重复料号, 所以您列出的1或2都可以.
作者: yen956    時間: 2014-3-1 19:18

回復 5# flying008
(1)你的意思是:
如果 材料名稱 相同, 生產批號 不相同,
則 生產批號 與 材料名稱 均保留
140102  底板-→140102  底板
140106  底板  140102  晶片
140102  晶片  140106  底板
140102  底板

(2)或是:
只要 材料名稱 相同, 不管 生產批號 是否相同,
只保留 生產批號 較小的
140102  底板-→140102  底板
140106  底板  140102  晶片
140102  晶片  
140102  底板

同樣的範例(前提), 結果不同,
(1)保留了三項, (2)只保留二項,
怎會都可以?
到底大大的需求是什麼, 可不可以說清楚點?
作者: flying008    時間: 2014-3-1 21:31

回復  flying008
(1)你的意思是:
如果 材料名稱 相同, 生產批號 不相同,
則 生產批號 與 材料名稱 均保 ...
yen956 發表於 2014-3-1 19:18


大大平安!
按您的意思, 那就是[1].
(1)
如果 材料名稱 相同, 生產批號 不相同,
則 生產批號 與 材料名稱 均保留.

作者: yen956    時間: 2014-3-2 04:59

回復 7# flying008
大大你好:
公式我正在學, 請試試vba
  1. Private Sub CommandButton1_Click()
  2.    Dim sh As Worksheet, i, 數量 As Integer, rngA As Range
  3.    Set sh = ThisWorkbook.Sheets("Sheet1")
  4.    數量 = sh.[A1].End(xlDown).Row - 1
  5.    sh.[D2].Resize(數量, 2) = ""
  6.    sh.[A2].Resize(數量, 3).Sort _
  7.          Key1:=Range("B2"), _
  8.          Key2:=Range("A2"), _
  9.          Order1:=xlAscending, _
  10.          Order2:=xlAscending, _
  11.          Header:=xlNo
  12.    sh.[D2].Resize(1, 2).Value = sh.[A2].Resize(1, 2).Value
  13.    For i = 3 To 數量 + 1
  14.        If sh.Cells(i, 1) <> Cells(i - 1, 1) Then
  15.            sh.Cells(sh.[D1].End(xlDown).Row + 1, 4).Resize(1, 2).Value = sh.Cells(i, 1).Resize(1, 2).Value
  16.        ElseIf sh.Cells(i, 1) = Cells(i - 1, 1) And sh.Cells(i, 2) <> Cells(i - 1, 2) Then
  17.            sh.Cells(sh.[D1].End(xlDown).Row + 1, 4).Resize(1, 2).Value = sh.Cells(i, 1).Resize(1, 2).Value
  18.        End If
  19.    Next
  20.    sh.[D2].Resize(數量, 2).Sort _
  21.          Key1:=Range("D2"), _
  22.          Order1:=xlAscending, _
  23.          Header:=xlNo
  24. End Sub
複製代碼

作者: sunnyso    時間: 2014-3-2 09:22

回復 7# flying008

提示
1. = 〔A〕&〔B〕
2. 去1中重複即可
作者: yen956    時間: 2014-3-2 12:26

本帖最後由 yen956 於 2014-3-2 12:27 編輯

回復 7# flying008
如果你有2010+的版本,可參考下列作法(數篇),
(我只有2003版本, 未試)
http://www.7headlines.com/article/show/342595316
作者: flying008    時間: 2014-3-2 18:10

回復  flying008
如果你有2010+的版本,可參考下列作法(數篇),
(我只有2003版本, 未試)
http://www.7hea ...
yen956 發表於 2014-3-2 12:26


谢谢大大! 2010版本及以上的确可以用功能实现, 这个已悉, 我正在寻找函数公式的解法, 谢谢!
作者: flying008    時間: 2014-3-2 18:11

回復  flying008
大大你好:
公式我正在學, 請試試vba
yen956 發表於 2014-3-2 04:59


大大的程式甚是精妙! 我要好好学一下VBA的用法, 谢谢!
作者: flying008    時間: 2014-3-2 18:12

回復 9# sunnyso


    大大字字珠矶, 受教了! 谢谢!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)