• 2

請問Excel的找出相異數值的方式

請問Excel的找出相異數值的方式如圖的左邊,想請教有無方式可以快速篩選出弄成圖的右邊那樣
想在上百筆產品中,快速找出有不同版本號的方式。

因為不同產品可能有相同的版號,所以無法單用版本那一行去做重複值篩選。

目前是用篩選出A之後再去比對版本那行
然後再去篩選B,然後再比對版本
產品有上百種,非常耗時,不知道有無什麼方法可以解決,煩請各位前輩賜教。
2021-12-17 0:48 發佈
文章關鍵字 excel 方式
參考寫VBA吧
labee
labee 樓主

感謝回覆,但我只有門外漢等級的Excel能力,只有買一本基礎的書自我學習中,VBA實在還無能力自行編輯

2021-12-17 17:01
labee wrote:
如圖的左邊,想請教有...(恕刪)


如果條碼時維一,可以用條碼vlookup 出版本。 不知道行不行符合需要
labee
labee 樓主

我只會一個條件的vlook, 我就卡在要先篩選出產品名稱 再去找尋版本相異的值... 我只有一本入門級的Excel書學習中,很多進階公式還在摸索

2021-12-17 17:54

如果『版本』固定都是數字的話…
labee
labee 樓主

版本是都數字,但各產品用到的版本號碼重複性太多,就卡關了

2021-12-17 17:55
labee wrote:
如圖的左邊,想請教有...(恕刪)


樞紐分析拉一下
一分鐘內解決啊
silentcat wrote:
樞紐分析拉一下一分鐘(恕刪)


非常感謝 原來有這個功能 似乎就是我需要的


這張表已經能讓我快速瀏覽出擁有差異版本的產品了 非常感謝!!


想進一步請教 如何把版本都相同的篩選掉 只顯示出版本有相異的呢, 這樣能讓我的選別更快點
主要重點是要知道還有多少產品有舊版 必須優先將舊版出貨掉
此圖中的產品B和產品C階只有單一的1001版
可以讓表只顯示出 各產品中 只列出版本有相異不顯示只有單一版本的嗎, 不帶出條碼也是可以
感謝各位大哥再賜教了
2017-05-03 寫的小工具,把您的資料放到sheet1試看看吧
雖然有分類,但沒有整理總表功能
https://www.mobile01.com/topicdetail.php?f=511&t=5138523

.UsedRange.Copy Sheets("_" & n & "_").Cells(1, 1) 這行到 Next 中間
插入3行程式碼(完全不改也是可以)
               
Sheets("_" & n & "_").Columns.AutoFit '調整欄位大小用
'下面這2行自己決定要用那一個,同時用、都不用都行
'只留不同版本
Sheets("_" & n & "_").Range("B:B").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
'刪掉條碼
Sheets("_" & n & "_").Range("c:c").Delete Shift:=xlToLeft



p.s.提醒一下,您6樓的文字說明,和圖片對不上
太閒改個程式,加個總表好了,把範例中的autofilter換成下面這一個
再手動建立一個名稱為“總表”的工作表

(更新)搞笑了…直接文章編輯,沒檢查就po程式碼
實際跑一遍才發現,這個結果等於整理資料順序而已
以下程式碼無效,請勿使用,請改用10樓另一個版本


Sub autofilter()

Dim c As String, allcriteria, lastrow As Double
c = InputBox("請輸入英文欄位名稱,預設 a 欄", , "a")
If c = "" Then Exit Sub

On Error Resume Next
Application.ScreenUpdating = False
Sheets("總表").ShowAllData
Sheets("總表").Cells.Clear
Sheets("總表").Range("a1:c1") = Array("name", "ver", "code")

With Sheets("sheet1")

.Range(c & ":" & c).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Set allcriteria = .Range(.Cells(2, c), .Cells(2, c).End(xlDown)).SpecialCells(xlCellTypeVisible)
lastrow = 2

For Each n In allcriteria
.Range(c & ":" & c).autofilter Field:=1, Criteria1:=n
'3 改成2 ,不複製條碼
.autofilter.Range.Offset(1).Resize(, 3).Copy Sheets("總表").Cells(lastrow, 1)
lastrow = Sheets("總表").Range("A1").CurrentRegion.Rows.Count + 1
Next
Sheets("總表").Columns.AutoFit
.AutoFilterMode = False

End With
Application.ScreenUpdating = True

End Sub




F2:
=IF(COUNTIF($A$2:$A$11,$A2)=COUNTIFS($A$2:$A$11,$A2,$B$2:$B$11,$B2),"",A2)
將公式複製到F2:H11(視筆數調整)。

再將F2:H11(視筆數調整)框選起來,按CTRL+C鍵複製。
再點取「常用 > 貼上 > 值」圖示。
點取「常用 > 排序與篩選 > 從Z到A排序」指令。
將F~H欄中的空白列框選起來,點取「常用 > 刪除 > 刪除儲存格」指令。
點取「下方儲存格上移」選項鈕,使其變黑。

點取「確定」鈕。
結果如下圖。
錦色如月,子耀光芒。


Sub find_difference()

Dim lastrow As Double, i As Integer, f As String
Application.ScreenUpdating = False

With Sheets("工作表1")

lastrow = .Range("A1").CurrentRegion.Rows.Count
f = "=SUMPRODUCT(--((R1C1:R" & lastrow & "C1=RC[-2])*(R1C2:R" & lastrow & "C2=RC[-1])))"

.Range("f1").Resize(lastrow, 3).Delete Shift:=xlUp
.Range("a1").Resize(lastrow, 2).Copy .Range("f1")
.Range("f1").Resize(lastrow, 2).RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
.Range("h1") = "數量"

lastrow = .Range("f1").CurrentRegion.Rows.Count
For i = lastrow To 2 Step -1
If WorksheetFunction.CountIf(Range("f1:f" & lastrow), .Cells(i, 6)) = 1 Then
.Cells(i, 6).Resize(, 3).Delete Shift:=xlUp
End If
Next i

lastrow = .Range("f1").CurrentRegion.Rows.Count
.Range("h2:h" & lastrow).FormulaR1C1 = f

End With

Application.ScreenUpdating = True

End Sub




[點擊下載]
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?