我正在尝试找到一种更高效、处理速度更快的解决方案。下面是我的工作文档的链接。
我在一所中学工作,我们正在制定学生的时间表。我们有一个表格,其中包含特定学生的课程请求(其中 8 个课程请求,每天 8 节),用于查找提供的课程。它被放置在一系列单元格中(8x8 - 8 个请求/8 个可用课时)。然后我使用索引函数来显示所有可能的选项:
=索引(分割(压平(压平(压平(压平(压平(压平(压平(压平( transpose(filter('学生计算'!D4:D11,'学生计算'!D4:D11<>"")))&"|"&transpose(filter('学生计算'!E4:E11,'学生计算'! E4:E11<>"")))&"|"&transpose(filter('学生计算'!F4:F11,'学生计算'!F4:F11<>"")))&"|"& transpose(filter('学生计算'!G4:G11,'学生计算'!G4:G11<>"")))&"|"&transpose(filter('学生计算'!H4:H11,'学生计算'! H4:H11<>"")))&"|"& transpose(filter('学生计算'!I4:I11,'学生计算'!I4:I11<>"")))&"|"&transpose(filter('学生计算'!J4:J11,'学生计算'! J4:J11<>"")))&"|"& transpose(filter('学生计算'!K4:K11,'学生计算'!K4:K11<>""))),"|"))
我认为在该范围后附加了第 9 列,该范围使用公式:=COUNTUNIQUE(A1:H1)。目标是8平!
然后我使用查询/过滤功能向我显示具有 8 个唯一值的所有可能组合,以便不会遗漏或重复任何类。
然后,我有 2 个简单的函数来让我知道学生时间表是否可能(有 > 1 种可能性)以及可能的时间表选项的数量(计算具有 8 个唯一值的可能时间表的数量)。
所以...我让它工作了吗?是的。但是......有没有办法通过几个步骤来做到这一点?我希望上面的索引函数可以使用 SQL 或 QUERY (更快的处理)来编写,并且已经消除了那些具有重复值的调度“选项”。我们正在谈论它为每个学生创造了超过 100,000 种可能性!这太过分了,我什至不想看到所有这些。
有人对我们如何加快这一速度或将其压缩为一个计算/步骤有任何建议吗?
提前致谢!
见上文。我尝试过(并且取得了一些成功),但是上述功能/步骤的处理速度太慢。试图找到更有效的方法。我什至可以接受一些应用程序脚本的使用。