我有一列项目代码列表(一天内发生变化),需要将其分发到不同的工作表和多列中(取决于一天内可用的代理数量)。
为了更好地说明,请参见此屏幕截图:
然后需要将其分发到这个:。
对于这个最好的公式或者 VBA 语法是什么?
答案1
您只需要添加一种方法来标记不可用的代理并计算每个单元的索引。
我在代理标签上方添加了两行,第一行允许将代理标记为不可用。我为单元格颜色添加了一些条件格式,并删除了不可用的代理的名称。
另一个是辅助行,它是可用代理的增量索引,其形式为=IF(9:9="",MAX($C8:C8)+1,"-")
我还添加了一个辅助列,它只是从 0 开始的行索引。(辅助列可以直接合并到表格公式中,但这会使阅读变得更加困难。辅助行和辅助列显然可以隐藏)。
表中的公式只是使用了一个简单的 =INDEX(<docs_id_list>,MATCH(..,<docs_id_index_list>,0))
公式。
表格公式为
=IFERROR(INDEX('Document List'!$B:$B,MATCH($A:$A*(COUNTA($C$10:$P$10)-COUNTIFS($C$9:$P$9,"<>"))+$8:$8,'Document List'!$A:$A,0)),"-")
(这显然假设您的文档列表位于名为“文档列表”的工作表的 A 和 B 列中)
我的解决方案使用了简单的先进先出公式,但可以使用工作日数字调整公式以从不同的单元格开始分配,因此表格偏向左侧列中的代理。