2012-07-12 52 views
3

我有一個Excel表格中的長數據列表,我將改爲將文件ID改爲名稱。問題是我需要首先檢查是否有相同文件名的不同ID,因爲這會產生問題。編寫Excel公式來檢查所有行,如果他們有相同的ID但文件名不同

因此,對於列file_id和列File_name,我需要幫助編寫一個公式,該公式可以比較同一文件名有兩個或多個ID。

這可能嗎?

由於

enter image description here

+0

列前(File_name),可以有多個列對應不同的文件ID嗎? – 2012-07-12 16:38:12

+0

是file_id數字還是字母數字?如果只有數字,就有可能使用的詭計。 – ApplePie 2012-07-12 16:46:04

+0

@KartikAnand我想檢查File_Names是否有不同的File_Ids。可以有許多File_Names,它們都必須具有相同的File_ID作爲名稱。我只想檢查是否有相同的file_name不同的file_id。 – Sam 2012-07-13 10:55:43

回答

2

這是我的嘗試。這段代碼要做的是標記那些與之前的ID不匹配的文件名。看看下面的圖片:

Snapshot

我使用VBA

按ALT + F11進入VBA嘗試過,在左欄中,你會看到「項目-VBA項目」,在這個雙擊Sheet1上,或者是你正在工作的工作表名稱。

VBA mode

Pasted code

將以下代碼粘貼有:

Sub mark() 

    Dim rng As Range 
    Dim row As Integer 
    Dim id As Integer 
    Dim name As String 

    Set rng = Sheets("Sheet1").Range("$A$2") 
    row = 0 

    Do Until rng.Offset(row, 0) = "" 

     id = rng.Offset(row, 0) 
     name = rng.Offset(row, 1) 

     Do While rng.Offset(row, 1) = name 
      If rng.Offset(row, 0) <> id Then 
       rng.Offset(row, 0).Interior.Color = 255 
       rng.Offset(row, 1).Interior.Color = 255 
      End If 
      row = row + 1 
     Loop 

    Loop 

End Sub 

請記住以下

  1. 在我的代碼表的名稱是「Sheet1」,如果您的工作表的名稱是別的東西,然後在代碼編輯以下行,如下所示

    Set rng = Sheets("Your sheet name").Range("$A$2") 
    
  2. 在我的代碼,起始範圍(小區)已被指定爲A2,如果起始細胞是其他例如D2的東西,然後在代碼如果你想要做一些其他的事情與這些細胞,而不是將它們標記,隨意編輯該行如下

    Set rng = Sheets("Your sheet name").Range("$D$2") 
    

評論。

+0

好的,謝謝,我該如何運行? – Sam 2012-07-13 16:08:40

+0

@瑞奇讓我編輯它,使其更清晰 – 2012-07-13 16:33:28

3

假設A欄是ID和B列是名稱 下面將檢查是否存在對於每個名稱的多個ID。 粘貼到單元格C1中並向下拖動。

=IF(COUNTIFS(B:B,"<>"&B1,A:A,A1)>0,"MORE THAN ONE ID FOR THIS NAME","OK") 

注意「COUNTIFS()」功能僅適用於2007年的Excel,2010年

如果您有Excel的舊版本,你需要使用數組公式,這將是這樣的:

=IF(SUM(IF(A:A=A1,IF(B:B<>B1,1,0),0))>0,"MORE THAN ONE ID FOR THIS NAME","OK") 

讓它工作你輸入公式時必須按Ctrl + Shift + Enter。

+0

感謝您的幫助,但我的意思是例如在B2中有兩個文件名稱爲STACK這個文件名我需要知道是否名稱堆棧有一個不同的file_id。有很多文件名感謝 – Sam 2012-07-13 10:56:34

+0

AH我以爲你想知道是否有多個file_id的相同的文件名。只要將上述兩個公式中的A和B顛倒過來即可。 – danielpiestrak 2012-07-13 14:18:48

+0

對不起,可能有很多file_ids,但它們必須與file_name保持一致,檢查僅用於查看文件名是否用於不同的Ids它不應該是。如果名字是stack,那麼所有的文件ID都應該是1,如果它全部是2,但是如果有一個已經結束了,我會希望檢查指出這一點。感謝您的幫助 – Sam 2012-07-13 14:42:26

2

如果您有多個file_id列和File_name只有一列,File_name列中的條目是唯一的,那麼它非常簡單: 假設列A,B和C包含file_id信息並且列D包含File_name。在E列中,您可以輸入以下公式:=COUNTA(A2:C2)

這將計算File_name列左側列中的file_id條目數。如果結果大於1,則知道存在多個file_ids。

+0

我認爲他意味着只有一個ID列,並且擔心同一個ID號被用於多個文本名。 – danielpiestrak 2012-07-12 16:54:27

相關問題