【发布时间】:2014-03-05 21:00:10
【问题描述】:
希望有人可以在这里帮助我。许多年前,我用 VB 6 为我们的园艺公司编写了一个完整的订购系统,其功能与我需要 Excel 电子表格的方式相同,但我不再拥有代码,也不知道我做了什么。
基本上,我们有一个电子表格,每一行都有商品编号(例如“12345”、商品描述(例如“Petunia Blue Frost”)、商品的销售倍数(例如“100” , "48", "288") 和一列用户可以输入他们想为每个项目订购的数量。在我的旧 VB 系统中,无论他们在订购数量字段中输入什么,它都会自动将其四舍五入到下一个倍数。因此,如果倍数是“100”并且他们将“1”放在 ord 数量中,它会自动将其四舍五入为“100”;如果他们输入“101”,则将其四舍五入为“ 200 英寸。
如何让 Excel 根据倍数和订购数量自动执行此操作?
提前致谢!
【问题讨论】:
-
好的,我想通了。我可以使用天花板功能。如果 C1 列具有倍数(例如 100)并且 D1 列具有有序数量(例如 52),则 F1 列具有“=ceiling(D1,C1)”并返回“100”。但是,是否有任何方法可以在 D1 中发生该功能(因此不需要新列)?我试图将公式放在 D1 中,但得到 REF# 错误。
-
=IF(test,true_condition,else_false_condition)怎么样?所以.. 你的会是这样的:=IF(C1:D1>100,ceiling(D1,C1),"")你可能还需要有几个嵌套的 IF 来寻找特定的条件。如果您必须使用查找从折扣表中提取,请使用=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]) -
@KimJones 如果不使用 VBA 中的事件,您可能会发现 Excel 没有该功能。听起来您要求 Excel 自动将输入值四舍五入到下一个倍数。 Excel 公式不能以这种方式工作。正如您已经说过的,大多数人会使用
=CEILING(D1,C1)来完成此操作。