返回列表 上一主題 發帖

[發問] 将A列对应的B列用函数不重复的列出在D列?

[發問] 将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                      底板
只有想不到的,
没有做不到的.

回復 9# sunnyso


    大大字字珠矶, 受教了! 谢谢!
只有想不到的,
没有做不到的.

TOP

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


大大的程式甚是精妙! 我要好好学一下VBA的用法, 谢谢!
只有想不到的,
没有做不到的.

TOP

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


谢谢大大! 2010版本及以上的确可以用功能实现, 这个已悉, 我正在寻找函数公式的解法, 谢谢!
只有想不到的,
没有做不到的.

TOP

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

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

TOP

回復 7# flying008

提示
1. = 〔A〕&〔B〕
2. 去1中重複即可
ss

TOP

回復 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
複製代碼

TOP

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


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

TOP

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

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

同樣的範例(前提), 結果不同,
(1)保留了三項, (2)只保留二項,
怎會都可以?
到底大大的需求是什麼, 可不可以說清楚點?

TOP

回復 4# yen956

大大平安!

C列是手动输入的批号, 需要用函数公式在D列中返回对应的不重复料号, 所以您列出的1或2都可以.
只有想不到的,
没有做不到的.

TOP

        靜思自在 : 愛不是要求對方,而是要由自身的付出。
返回列表 上一主題