Excel 的轮班模式自动化
Automation in Excel for shift patterns
您好,我有以下两个表格
我正在尝试获取 col
我正在尝试自动化 Column E
以便每次单元格 D2
中的数据更改时,它都会根据当天分配给代理的轮班模式自动更改。
我不能使用 vlookup
,因为它显然只会使用找到的第一个文本,例如 9am-5pm
- 所有单元格都将填充 Agent 3
。
改为使用 XLOOKUP()。列位置与此功能无关。
似乎 E3
中的这个数组公式部分满足了您的要求(它不是使用通常的 Enter 键输入的,而是 Ctrl + Shift + Enter).
=INDEX($A:$A,SMALL(IF(D3=$B:$B,ROW($B:$B)-ROW($B)+1),COUNTIF($D:D3,D3)))
=INDEX($A:$A,AGGREGATE(15,3,($B:$B=D3)/($B:$B=D3)*ROW($B:$B)-1,COUNTIF(D:D3,D3)))
作为 ZygD 答案的替代方法。
它使用聚合。它检查 B 列范围中的值是否等于 D 列中的值并将结果除以自身,如果为 True 则结果为 1 并将其乘以行号。结果给出了所有 TRUE 的行号,并根据上面的结果列表中已经找到的相同代理的数量检查第 N 个最小值,最后在 A 列的值范围内显示该行的值。
您好,我有以下两个表格
我正在尝试获取 col
我正在尝试自动化 Column E
以便每次单元格 D2
中的数据更改时,它都会根据当天分配给代理的轮班模式自动更改。
我不能使用 vlookup
,因为它显然只会使用找到的第一个文本,例如 9am-5pm
- 所有单元格都将填充 Agent 3
。
改为使用 XLOOKUP()。列位置与此功能无关。
似乎 E3
中的这个数组公式部分满足了您的要求(它不是使用通常的 Enter 键输入的,而是 Ctrl + Shift + Enter).
=INDEX($A:$A,SMALL(IF(D3=$B:$B,ROW($B:$B)-ROW($B)+1),COUNTIF($D:D3,D3)))
=INDEX($A:$A,AGGREGATE(15,3,($B:$B=D3)/($B:$B=D3)*ROW($B:$B)-1,COUNTIF(D:D3,D3)))
作为 ZygD 答案的替代方法。
它使用聚合。它检查 B 列范围中的值是否等于 D 列中的值并将结果除以自身,如果为 True 则结果为 1 并将其乘以行号。结果给出了所有 TRUE 的行号,并根据上面的结果列表中已经找到的相同代理的数量检查第 N 个最小值,最后在 A 列的值范围内显示该行的值。