答案1
您使用 microsoft-excel-2010 标记了您的帖子,这使得这种事情变得非常困难。如果这是意外,或者如果它对其他人有帮助,您可以在较新版本的 Excel 中执行类似的操作。
在单元格 B2 中:
=LET(days,TRANSPOSE(TEXT(DATE(2022,1,SEQUENCE(7,1,17)),"dddd")),isdate,XLOOKUP(IFERROR(LEFT(A2,FIND(",",A2)-1),""),days,days,"")<>"",IF(isdate,A2,B1))
然后将其拖到数据范围的底部(图像中的 B18)
在单元格 C2 中,复制到 C 列中:
=IF(AND(A2<>B2,NOT(ISNUMBER(A2))),A2,C1)&""
在单元格 D2 中,复制到 D 列中:
=IF(ISNUMBER(A2),A2,"")
最后,在图像中的单元格 B22 中:
=FILTER($B$2:$D$18,$D$2:$D$18<>"")
如果愿意,您可以添加逻辑将日期从文本转换为日期格式。
编辑:
对于 Excel 2010,我认为您可以将其用于在每行上放置日期的列(下图中的 F 列):
=IF(NOT(ISERROR(MATCH(LEFT($A3,FIND(",",$A3)-1),{"Monday";"Tuesday";"Wednesday";"Thursday";"Friday";"Saturday";"Sunday"})>0)),$A3,F2)
另外两列的公式相同,当然,在 Excel 2010 中您将无法访问 FILTER,因此您必须使用自动筛选或高级筛选来删除不必要的行。