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

问题描述 投票:0回答:3

我正在尝试根据课程、日期和时间生成批次 ID。具有相同

Course+Date+Time
组合的所有行应具有相同的批次 ID。所有后续组合都应该有增量 ID

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

没有 VBA,只有 Excel 2016 公式。

样本数据快照

enter image description here

excel excel-formula unique
3个回答
1
投票

有点牵强,但尝试一下

F2

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

通过 CtrlShiftEnter

输入

0
投票

通过三个步骤来满足您的要求,而不是单个公式,会更容易且更具可读性。

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

    公式:

    =连接(上(左($C3,3)),文本($D3,“ddmmyy”),文本($E3,“hhmm”))

    细分:

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

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

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

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

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

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

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

    在数据菜单选项卡上,选择数据工具中的删除重复项

    添加批次 ID 进行查找。

    这样,如果使用“从 A 到 Z 排序”对唯一 ID 进行排序,则可以通过公式生成批次 ID。

    请参阅附图。

    查找唯一ID以获取批次ID
  3. =VLOOKUP($F3,$I$3:$J$7,2,FALSE)

enter image description here

=spl("=(t=E(?).group(Course).(~.group(Date,Time)),t.conj(~.news(~;Course,Date,Time,left(Course,3)/string(t.~.#,""000""):'Batch ID')))",A1:C8)

0
投票

© www.soinside.com 2019 - 2024. All rights reserved.