Excel 重新排列数字的公式

Excel 重新排列数字的公式

我在尝试在 Excel 中创建公式时遇到了一些困难,上次我在这里提问时得到了很大的帮助,所以我又回来了。目前,我的 A 列中有一组产品 ID。数量不到 2000。我需要尝试做的是让另一列中的每个数字重复 16 次,然后在下一列中按顺序重复前 16 个数字,重复前一列中的 16 个数字,完成这 16 个数字后,再在接下来的 16 组中重复接下来的 16 个数字。

IE。

1---1---1
2---1---2
3---1---3
4---1---4
5---1---5
6---2---1
7---2---2
8---2---3
9---2---4
10--2---5

等等,但数字超过 16 组,而不是 5 组。这可能吗?我确信这是可能的,但此刻我陷入了思维僵局。

提前感谢任何帮助。

答案1

看起来中间列可以用类似这样的公式来计算:

=QUOTIENT( A1 , max_product_id )

右列可以用如下公式计算:

=1+MOD( A1 , max_product_id )

其中“max_product_id”是包含值 16 的命名单元格的名称,相对引用“A1”被调整为引用左列中同一行的单元格。在顶行设置正确后,您“下拉”这两个单元格,相对引用应该会自动执行正确的操作。

答案2

当我尝试时,前面的答案产生了不理想的结果。这是一个更简单的解决方案,我认为它可以按照您的要求工作。

我不假设 A 列中的产品 ID(假设)以“1”开头:让它们以任意顺序开始。用它们设置列。然后在第一个单元格右侧的两个单元格中分别输入“1”。假设是 B1 和 C1。

本例中的 B 列将为每组 16 个产品 ID 的序数。如要求的那样,这些序数将从 1 开始。如果您希望它们以不同的数字开头,请在单元格 B1 中输入该不同的数字。

现在在单元格 B2 中输入以下公式:

=IF(C1=16,B1+1,B1)

它会查看其右上方单元格(本例中为单元格 C1)是否为“16”,如果是,则它知道一组新的 16 个产品 ID 从该行开始,因此它会将最后使用的序数加 1。这就是您如何让该组数字对每组 16 个产品 ID 增加 1 的方法。

然后转到单元格 C2 并输入以下公式:

=IF(C1=16,1,C1+1)

它会查看其正上方的单元格(本例中为单元格 C1)是否包含“16”,如果包含,则从 1 开始编号。如果不包含,则会将其正上方的数字加 1,继续累加直至 16。

这样你就可以让他们上升到 16 然后从 1 重新开始。

还有很多其他方法可以巧妙地满足您的需求,但它们都涉及您必须考虑的有趣小事情,使公式复杂化或限制您,使您的产品 ID 以“1”开头,或要求产品 ID 全部为数字字符串,不允许使用字母或其他字符,或要求您从第 1 行开始或必须做额外的事情,有时从其他行开始会非常棘手。这些公式还允许您在任何您希望的地方使用它们:它们不必位于产品 ID 旁边的两列中。

我可能有点晚了,无法对你有帮助,但也许其他人会搜索到它并发现它有用。

相关内容