簡體   English   中英

與多張紙上的多列比較時,excel函數可突出顯示一列中的唯一值

[英]excel function to highlight unique values in one column when compared with multiple columns on multiple sheets

好的,我正在使用Excel工作簿來管理我們產品的物料清單BOM。 我在一本工作簿中有幾張特定於產品的工作表和一份清單工作表。

發布新的BOM時,所有庫存都手動添加到“庫存”表中。

我想尋找一種方法來搜索僅存在於庫存表上的所有零件號。

基本上,它的產品已經停產。 手動查找這些部件號是一件痛苦的事情。

我想查找庫存表上零件號列唯一的所有項目。 這些獨特的項目不會在其他任何圖紙的零件號列中出現。

因此,我需要搜索整個工作簿並突出顯示那些“孤立的”工作簿,然后可以輕松地將其從此工作表中刪除。

我無法弄清楚如何使VBA函數執行此操作或如何使用條件格式執行此操作。

零件號可以是字母數字值的混合。

我可能希望excel過於像關系數據庫那樣工作,但我可以做夢!

在此先感謝您的幫助。

抱歉,我還沒有上傳圖片的聲譽。 我提供了屏幕截圖的下載鏈接。

https://gofile.me/2rhXY/tPMTm9OF

這是一個代碼示例:這正在使用推薦的VB模塊。 此公式不適用於僅數字值。

https://gofile.me/2rhXY/fjoSA3iI

這是日期來源的標簽。 應該找到這個值,但是沒有找到。

斯科特

假設庫存工作表實際上稱為“ 庫存” ,並且“多個特定產品的表”沒有公共部分,則該列應在庫存工作表的幫助列中為您工作,該列可以按條件格式進行過濾或作為公式進行過濾規則。

點擊Alt + F11 ,當VBE打開時,立即使用下拉菜單插入►模塊( Alt + IM )。 將以下內容粘貼到名為Book1-Module1(代碼)的新窗格中。

Public Function bDiscontinued(rPART As Range, rSRCH_COL As Range) As Boolean
    Dim sPart As String, sAddress As String, ws As Long
    sPart = rPART.Value
    sAddress = rSRCH_COL.Address(0, 0)
    bDiscontinued = True
    For ws = 1 To Worksheets.Count
        With Worksheets(ws)
            If .Name <> "Inventory" Then
                If Not IsError(Application.Match(sPart, .Range(sAddress), 0)) Then
                    bDiscontinued = False
                    Exit For
                End If
            End If
        End With
    Next ws
End Function

編輯包含Inventory的行以適合您不想搜索的工作表的實際名稱。 點擊Alt + Q返回到您的工作表。

語法很簡單,

=bDiscontinued(<part no to look for>, <common column of part nos in other worksheets>)

例如:如果您的庫存工作表的A列中的部件號從第2行開始,而所有其他工作表的部件號都在B列中,則將此公式放入庫存工作表的第2行中未使用的列中。

=bDiscontinued($A2, $B:$B )

根據需要填寫。 可以將此新列過濾為TRUE以顯示所有可以刪除的不連續零件號。

如果簡單的條件格式突出顯示行就足夠了,則可以在CF規則中使用相同的公式,其“ 適用於:”為A2:Z9999。 如果“ 適用於:”為$ A:$ Z,則將公式更改為=bDiscontinued($A1, $B:$B )

通過“新建規則>使用公式來確定要格式化的單元格”來設置條件格式。 假設要突出顯示唯一值的范圍是A1:A99,請使用以下公式:= COUNTIF($ A $ 1:$ A $ 99,$ A1)= 1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM