我有一个表格(左),其中每行定义一个人的课程日期/时间。
我有第二张表(右),这是我生成的时间表。
我正在尝试使用公式根据计划表填充时间表 - 但没有运气。我尝试过从网络搜索中获取的多个 INDEX/MATCH 公式...但没有一个获得正确的结果。
时间表中的每个单元格(由其相对时间行值和日期列标题值定义)应填充相应的初始值,其中时间/日期组合映射到计划表的会话/日期列。
因此,时间表上的
TUESDAY
、09:00-09:30
应计算为 AB
,因为单元格 K3
(Day) 和 L3
(Time) 已映射到计划表中 - 以及生成的缩写是 AB
(细胞 C3
)。
希望图片能比我的话更好地解释。
感谢所有建议。
我尝试过的来源链接:
假设根据发布的标签没有
Excel Constraints
,那么我相信这应该可以满足您的要求:
• 单元格中使用的公式 Q2
=LET(
a, UNIQUE(INT(SEQUENCE(,COLUMNS(Table1[[Session 1 - Day]:[Session 3 - Time]]),,0.5)),1),
b, TOCOL(IFS(a,Table1[Initials])),
c, WRAPROWS(TOCOL(Table1[[Session 1 - Day]:[Session 3 - Time]]),2),
d, HSTACK(b,c),
e, FILTER(d, INDEX(d,,3)<>0),
XLOOKUP(1,($P2=INDEX(e,,3))*(Q$1=INDEX(e,,2)),TAKE(e,,1),""))
上面的公式需要向下填写,向右填写!。但是,您也可以使用以下方法,它会溢出整个数据。
• 单元格中使用的公式 Q2
=LET(
a, UNIQUE(INT(SEQUENCE(,COLUMNS(Table1[[Session 1 - Day]:[Session 3 - Time]]),,0.5)),1),
b, TOCOL(IFS(a,Table1[Initials])),
c, WRAPROWS(TOCOL(Table1[[Session 1 - Day]:[Session 3 - Time]]),2),
d, HSTACK(b,c),
e, FILTER(d, INDEX(d,,3)<>0),
MAKEARRAY(ROWS(P2:P13),COLUMNS(Q1:U1),LAMBDA(x,y,
XLOOKUP(1,(INDEX(P2:P13,x)=INDEX(e,,3))*(INDEX(Q1:U1,y)=INDEX(e,,2)),TAKE(e,,1),""))))