Excel2016:根据多个条件生成ID(无VBA)

Excel2016: Generate ID based on multiple criteria (no VBA)

我正在尝试根据课程、日期和时间生成批次 ID。所有具有相同 Course+Date+Time 组合的行都应具有相同的批次 ID。所有后续组合都应具有增量 ID

Batch ID = LEFT(C2,3)&TEXT(<code formula>,"000")

没有 VBA,只有 Excel 2016 公式,请。

示例数据快照

有点困难,但请尝试 F2:

=IF(COUNTIFS(C:C2,C2,D:D2,D2,E:E2,E2)>1,LOOKUP(2,1/((C:C1=C2)*(D:D1=D2)*(E:E1=E2)),F:F1),UPPER(LEFT(C2,3))&TEXT(MAX(IFERROR((LEFT(F:F1,3)=LEFT(C2,3))*RIGHT(F:F1,3),0))+1,"000"))

通过CtrlShift回车

分三步满足您的要求,而不是一个公式,会更容易、更易读。

  1. 根据课程、日期和时间创建唯一 ID。

    公式:

    =CONCATENATE(UPPER(LEFT($C3,3)),TEXT($D3,"ddmmyy"),TEXT($E3,"hhmm"))

    细分:

    LEFT($C3,3) - 取课程的前三个字符

    UPPER() = 将课程的前三个字符大写

    TEXT($D3,"ddmmyy") = 获取日期,将其转换为文本并应用格式

    TEXT($E3,"hhmm") = 花点时间,将其转换为文本并应用格式

  2. 创建唯一 ID 和批次 ID 的查找 table

    复制在第 1 步中创建的所有唯一 ID

    将它们粘贴到与您的数据分开的新列中

    在“数据”菜单选项卡上,select在数据工具中删除重复项

    将批次 ID 添加到查找中。

    如果唯一 ID 使用 从 A 到 Z 排序

    ,则可以通过公式生成批次 ID

    见附图。

  3. 查找唯一 ID 以获取批次 ID

    =VLOOKUP($F3,$I$3:$J$7,2,FALSE)