我的電子表格中有兩個清單。兩個列表均由兩列組成。一列是計算機序號,另一列是第一列中的計算機分配給的人員。
這些清單是由兩個不同的人創建的,我需要對它們進行比較並找出差異。這是此問題的一個範例:。
在此範例中,我需要確保在資料集 A 和資料集 B 中都為人員 A 分配了 CPU1。但是,如果某個人出現在資料集 A 中但未出現在資料集 B 中,則該人應保留在清單中。
答案1
因此,您需要檢查清單 A 與清單 B 的關係,在需要時變更為符合清單 B,在不需要時使用清單 A 的資料。您可能想了解發生的問題。
關於第一部分,您需要在清單A 中新增一個新列,最好將其插入到兩個現有列之間,以便它立即成為電子表格中任意範圍或其他引用的一部分,然後將其推送到右側的列剪切並插入到它之前而不是留在它後面,這樣您就回到了原始材料,右側有一個新列,但新列是對列表 A 材料的任何引用的一部分。
對於第二個,至少有兩個事件您可能會感興趣:1) 清單 A 的資料與清單 B 不匹配。後,顯示的結果與顯示的其他結果重複。換句話說,您至少顯示分配給特定 CPU 的兩個人,除非清單 B 包含重複項,否則這是因為清單 B 表示一個人,而清單 A 顯示一個或多個其他人擁有該 CPU。只有清單 B 結果 Person 是正確的,因此其他結果都存在問題。
若要進行檢查工作,請插入新列,然後將推回原位的列移回原位。我會說你的資料目前是列表A是列A和B,黑色列是列C,列表B是列D和E。 B 現在是E 列和F 列。
由於清單B 會覆蓋與清單A 的任何差異,因此該公式將在清單B 中尋找清單A 中的每個人,如果有該人的條目,則傳回清單B 所擁有的內容;如果清單B 中沒有條目,則傳回清單A 所擁有的內容:
XLOOKUP($B2,$F$2:$F$5,$E$2:$E$5,$A2,0,1)
使用了漂亮的新的,XLOOKUP()
但如果你沒有它,你將需要一個Index/Match
解決方案,因為你必須在清單 B 中「向左看」。
然後是問題。對於如何處理它們,您至少有兩種選擇。可能其他人,例如你可以寫一個巨集來做到這一點,但我只會考慮公式。一種方法是XLOOKUP()
透過對問題的測試來使問題複雜化。大多數人似乎都會大聲喊叫,然後就走開。但是有一種更簡單的方法,如果需要的話,可以進行大量的微調,儘管您只需要這裡的基礎知識。它是使用條件格式(“CF”)來進行測試,而不是將上面的公式變成 20 行的怪物,即使你剛剛完成也無法真正理解。
使用 CF,您只需選擇列出規則的順序,以便按照正確的順序測試它們。 (大多數人首先考慮測試。如果您首先選擇順序,那麼您必須制定適合該順序的測試。通常,採用其他方法會更容易,因此人們會這樣做。)
因此,如果現在有多個 Person 列出了某個特定 CPU,則稱為“重複”,CF 對此有一個內建規則。首先測試它很容易,所以進行設定。我稍後會介紹要套用的格式,因為它有一個「技巧」。然後製定第二條規則,使用此公式進行測試:
=XLOOKUP($B2,$F$2:$F$5,$E$2:$E$5,$A2,0,1)<>$A2
請注意,這個新規則將自身插入到重複規則之前。一切都很好,如果您將其移至第二個檢查規則,這些將不起作用。請勾選「如果為真則停止」方塊。
現在 CF 將檢查公式的結果是否與該人員的原始清單 A 資料相符。如果是,它將應用此處的格式並停止。如果沒有,則繼續執行第二條規則。
第二條規則檢查是否有重複,如果存在則套用重複的格式。
因此,「技巧」...您將使用一種非常不常見的格式化可能性將錯誤訊息放入新的列表A 結果中(而不是做將它們擬合到單元格公式中的噩夢,工作的噩夢和曾經試圖再次理解它以更新或更正它)。
正常的數字格式可讓您為儲存格中最多四種資料設定格式:正數、負數、零和文字。在其中任何一個中,您都可以將文字字串(複數)放入格式中。事實上,格式只能是文字字串。對於這兩個 CF 規則,您將使用這一事實。對於第一條規則,請使用以下規則,正如您所看到的那樣:
;;;“列出不匹配項”
對於第二條規則,請使用以下內容:
;;;">1 已指派"
為了使這些內容更好地突出(它們的文字比“CPU”文字更長,但是...),您可以將文字格式化為不同的顏色,至少,也許是漂亮的紅色。
如果您只需要沒有任何問題的列表,只需在開始時執行公式,並在另一天記住這個CF 的東西,當您想要在單元格中使用一個簡單、直接的公式以及所有錯誤測試並給出適當的訊息時在 CF 中使用簡單的規則,而不是讓單元格公式成為噩夢。