我有一张桌子,如下所示:
--------------------------------------------------------------------------------------
|Id | Name | Category | Sub-Category | Supplier
--------------------------------------------------------------------------------------
| 1 | Orange juice "TASTY" | Beverage | Juice | Le Beverage supplier
--------------------------------------------------------------------------------------
| 2 | Canned tuna "LUNA TUNA" | Food | Canned | Food Supplier
--------------------------------------------------------------------------------------
| 3 | Pepsi, just Pepsi | Beverage | Soft Drink | Le Beverage supplier
--------------------------------------------------------------------------------------
| 4 | Fanta, just fanta | Beverage | Soft Drink | Le Beverage supplier
--------------------------------------------------------------------------------------
| 5 | French Fries, frozen | Food | Frozen Food | Food Supplier
--------------------------------------------------------------------------------------
| 6 | Pepsi, just Pepsi | Beverage | Soft Drink | Other Beverage Supplier
--------------------------------------------------------------------------------------
| 7 | Fanta, just fanta | Beverage | Soft Drink | Other Beverage Supplier
--------------------------------------------------------------------------------------
| 8 | Dog Food | Pet Food | Tasty | Best Dog Food Inc.
--------------------------------------------------------------------------------------
类别和子类别列最初缺少所有值,所有值都是根据商品名称本身和常识手动输入的。因此,主要目标是尽可能高效、快速地输入它们。我们尝试按供应商进行筛选;这使我们能够在一个类别(共有 500 个)内进行工作并节省一些时间,但随后出现了来自其他供应商的同名重复项,这些重复项没有被覆盖 - 例如,ID 3、4 和 6、7。然后我们尝试按名称进行过滤,这解决了重复的问题,但迫使我们在一家供应商之外工作,因此我们不断在类别之间切换。
我的问题是:
当我们使用按供应商过滤时,有没有办法自动更新所有重复项?更新的意思是自动为所有具有相同名称但不同供应商的列分配类别和子类别。示例如下:
- 当我将第 3 行类别设置为 X 并将子类别设置为 Y 时,将类别 X 和子类别 Y 设置为 Id 为 6 的行,因为它们具有相同的名称。
除了我们现在尝试的方法之外,还有其他好的替代方法吗?我几乎觉得 Excel 中有某种神奇的工具,专门用于帮助完成像这样的任务。
答案1
我假设您显示的数据是单元格A1:E9
。输入
=IFERROR(VLOOKUP($B3, $B$2:$D2, 2, FALSE), "")
放入单元格 C3
。将其拖拽/填充到右侧单元格 D3
,并将最后一个2
( 之前的那个FALSE
)更改为3
,因此它看起来像这样:
=IFERROR(VLOOKUP($B3,$B$2:$D2,3, 错误的), ””)
然后选择单元格C3:D3
并根据需要向下拖动/填充。
现在按通常(当前)的方式输入数据。(如果您有某种机制来生成 Column 中的“Id”值 A
,则不会受到影响。)您自然需要在单元格 中输入“Category”和“Sub-Category”值 C2:D2
,因为它们不能重复。随后,当您进入 Columns C
和 时 D
,您将在公式框中看到上述公式。只需忽略它们并输入新的“Category”和“Sub-Category”值即可。
直到您在列 中输入重复的值 B
。1 然后,当您完成数据输入时(通过按Ctrl+Enter
或跳转到列 C
),具有该产品名称的第一行的“类别”和“子类别”值将自动出现在列 C
和 中D
。如果它们是您想要的,只需跳转到列 并照常继续。如果它们不是您想要的,只需忽略它们并在列和 E
中输入所需的值 。C
D
插图:
在这里,我开始在单元格中输入“Pep” B7
,Excel 建议“百事可乐,仅百事可乐”,因为这是在单元格中输入的 B4
:
我按下Tab接受建议,Excel 便会在单元格和中填充单元格 和C7
中 D7
的“饮料”和“软饮料”值 C4
。 D4
这些公式相当简单。
VLOOKUP
搜索数据五B
垂直数据集(即一列)。我的公式会在当前行上方的列中 查找当前行中的列值 (即产品名称)。如果找到完全匹配,公式会在此行的列中显示(第一个)匹配行的列 B
值 ,列也是如此 。C
C
D
如果要使自动值永久保留,请复制并粘贴值。您应该在对数据进行排序之前执行此操作。________
1
在我的系统(运行 Excel 2013)上,Excel 会注意到我开始输入重复值时的情况,并会建议我重复的值。如果您的系统这样做,只需按 即可Tab接受建议。