如何比較每個元素有多行的 2 個清單?

如何比較每個元素有多行的 2 個清單?

我正在嘗試找到一種方法,將每個人有幾行的兩個“人”列表與另一個列表進行比較,其中它們可能包含或不包含相同的行。

每個人都有一個獨一無二的 ID。對於任一清單中的每個人,可以有 1 到 4 行。它們不一定包含相同數量的行,或者它們的順序可能不同。除此之外,對於每個人來說,每行中的幾乎每個單元格都將是冗餘且相同的(主要是不變的個人資訊)。可能的行(“物品”)始終相同:夾克、帽子、鞋子和配件。每行的最後兩個單元格是我需要比較的實際值。

英語是我的第二語言,我在嘗試用語言表達它時遇到了困難,所以我在 Google Sheets 上做了一個例子。

我還獲得了這兩個表,其中包含特定的列和格式,如我連結的範例中所示,但我無法更改或重新排列它。我所能做的就是添加“過去了嗎?”柱子。

在我看來,我需要類似更複雜版本的 VLOOKUP 之類的東西,我可以在其中查找唯一 ID(B 列),然後以某種方式查找該項目(E 列)並返回該特定的金額值項目(F 欄)。那麼這只是 IF A=B 然後“OK!”等的問題。

SU 的好心人能否為我指出正確的方向,即如何想出一種不需要腳本的方式在 N 中產生「比較」列的方法?否則,我如何比較每個人的每個元素與另一個清單中同一個人的相同元素?

範例表1

姓名 供應商 ID # 性別 年齡 預期物品 預計金額
湯姆·沃茨 6505581 中號 21 夾克 44
湯姆·沃茨 6505581 中號 21 帽子 20
湯姆·沃茨 6505581 中號 21 55
湯姆·沃茨 6505581 中號 21 配件 18
史密斯,簡 702452 F 32 帽子 56
史密斯,簡 702452 F 32 20
史密斯,簡 702452 F 32 配件 26
美國能源部,約翰 1235554 中號 54 夾克 80
美國能源部,約翰 1235554 中號 54 配件 20

範例表2

姓名 供應商 ID # 性別 年齡 已售商品 售出數量 過去了?
湯姆·沃茨 6505581 中號 21 夾克 44 好的!
湯姆·沃茨 6505581 中號 21 65 +10
湯姆·沃茨 6505581 中號 21 帽子 20 好的!
湯姆·沃茨 6505581 中號 21 配件 18 好的!
史密斯,簡 702452 F 32 配件 26 好的!
史密斯,簡 702452 F 32 10 -10
史密斯,簡 702452 F 32 帽子 56 好的!
美國能源部,約翰 1235554 中號 54 夾克 95 +15
美國能源部,約翰 1235554 中號 54 配件 22 2

答案1

沒有表格的解決方案LET

現在我使用了輔助列來首先獲取預期金額(為了使最終公式更簡單):
=FILTER($F$2:$F$10,($B$2:$B$10=I2)*($E$2:$E$10=L2))

主要公式只是比較銷售量與預期量:
=IF(M2=N2,"OK!",M2-N2)

在此輸入影像描述

答案2

您需要的函數是FILTER(),除此之外,我使用LET()函數使公式更簡單,並添加了表格(插入-表格),因此我可以使用結構化引用。

=LET(expected, FILTER(Table1[AMOUNT EXPECTED],(Table1[VENDOR ID '#]=[@[VENDOR ID '#]])*(Table1[ITEMS EXPECTED]=[@[ITEMS SOLD]])),IF(expected=[@[AMOUNT SOLD]],"OK!",[@[AMOUNT SOLD]]-expected))

在此輸入影像描述

相關內容