Board logo

標題: [發問] 在沒有排序的情形下,相同產品編號,留下最後一個就好 [打印本頁]

作者: PJChen    時間: 2014-11-20 19:01     標題: 在沒有排序的情形下,相同產品編號,留下最後一個就好

各位大大好,

請教.....
我想在E欄下一個公式,在沒有排序的情形下,讓B欄相同產品編號,留下最後一個就好.
例如:00021025025的最後一個相同編號在B24,只在B24顯示產品編號,其餘就空白

[attach]19611[/attach]
作者: luhpro    時間: 2014-11-22 15:22

各位大大好,

請教.....
我想在E欄下一個公式,在沒有排序的情形下,讓B欄相同產品編號,留下最後一個就好 ...
PJChen 發表於 2014-11-20 19:01

公式我不會,
若改用 Excel VBA 倒是很容易做到此功能.
  1. Sub nn()
  2.   Dim lRow&
  3.   Dim vD, vA
  4.   
  5.   Set vD = CreateObject("Scripting.Dictionary")
  6.   lRow = Cells(Rows.Count, 5).End(xlUp).Row
  7.   Range(Cells(5, 5), Cells(lRow, 5)).Clear
  8.   lRow = 5
  9.   Do While Cells(lRow, 2) <> ""
  10.     vD(CStr(Cells(lRow, 2))) = lRow
  11.     lRow = lRow + 1
  12.   Loop
  13.   
  14.   For Each vA In vD
  15.     Cells(vD(vA), 5) = vA
  16.   Next
  17. End Sub
複製代碼

作者: PJChen    時間: 2014-11-22 20:24

回復 2# luhpro

謝謝大大的回覆,執行上沒有問題,但因為檔案做完後要給許多人看,我比較擔心忘了刪除巨集....
想知道有沒有人會用公式的?
作者: PJChen    時間: 2014-11-26 20:59

回復 3# PJChen

請問第1樓的情形,有公式可以用嗎?
作者: owen06    時間: 2014-11-28 12:29

回復 4# PJChen

    試看看
    E5=IF(COUNTIF(B:B,B5)=1,B5,IF(ROW()=MATCH(B5,B:B,2),B5,""))
    公式往下拉
作者: PJChen    時間: 2014-12-11 20:43

回復 5# owen06

您好,

感謝您的回復,我試了公式,它在排序的情形下沒有問題,但若沒有排序,則會出錯,無法正確的show出最後一筆料號.
請問還能怎麼修正公式呢?
作者: samwang    時間: 2014-12-12 11:30

回復 6# PJChen

E2=IF(COUNTIF(B$2:B2,B2)<COUNTIF(B:B,B2),"",B2)
往下拉,請問是不是你要的需求?
作者: PJChen    時間: 2014-12-13 12:47

回復 7# samwang

感謝大大,

我把它改成這樣,就是我要的了,太謝謝了...
這樣的公式對我來說太有用了...
=IF(COUNTIF(B$5:B5,B5)<COUNTIF(B:B,B5),"",B5)
作者: jomeow    時間: 2018-3-29 12:35

PJChen大大你好,

請想教.. 為何會用 MATCH(B5,B:B,2)?
我只知道match 可以用 -1, 0 , 1...
但不明白用2是為什麼呢?

請教各位大大幫忙解答..
^^


回復  PJChen

    試看看
    E5=IF(COUNTIF(B:B,B5)=1,B5,IF(ROW()=MATCH(B5,B:B,2),B5,""))
    公 ...
owen06 發表於 2014-11-28 12:29

作者: 准提部林    時間: 2018-3-30 17:10

=IF(ISNA(MATCH(B5,B6:B3000,)),B5,)&""
作者: hydraulic    時間: 2018-3-31 14:50

我發現如果用函數寫的話,我的資料超過1萬筆就要算超久的,檔案也變得很大不好開啟
作者: jomeow    時間: 2018-4-6 11:07

大大你好.. 我還有另一難題.. 就是用你的公式.. MATCH是有NA..請問可以如何解決呢?

[attach]28501[/attach]

回復  PJChen

    試看看
    E5=IF(COUNTIF(B:B,B5)=1,B5,IF(ROW()=MATCH(B5,B:B,2),B5,""))
    公 ...
owen06 發表於 2014-11-28 12:29

作者: jomeow    時間: 2018-4-6 11:12

=IF(ISNA(MATCH(B5,B6:B3000,)),B5,)&""
准提部林 發表於 2018-3-30 17:10



我試著用你教的公式..
都是不行..
><.




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