我有三条信息:数量,每件重量和一个限制。我需要的是每件重量的倍数,而不通过限制和数量。
我做了一个代码,但问题是数量的数据各不相同,使用的代码很长。
=ROUND(IFS((F13*G13)<H13,F13*G13,((F13-1)*G13)<H13,((F13-1)*G13),
((F13-2)*G13)<H13,,((F13-3)*G13)<H13,,((F13-4)*G13)<H13,,((F13-5)*G13)<H13,,
((F13-6)*G13)<H13,(F13-6)*G13,((F13-7)*G13)<H13,(F13-7)*G13,
((F13-8)*G13)<H13,(F13-8)*G13,((F13-9)*G13)<H13,(F13-9)*G13,
((F13-10)*G13)<H13,(F13-10)*G13,((F13-11)*G13)<H13, (F13-11)*G13,
((F13-12)*G13)<H13,(F13-12)*G13,((F13-13)*G13)<H13,(F13-13)*G13,
((F13-14)*G13)<H13,(F13-14)*G13,((F13-15)*G13)<H13,(F13-15)*G13,
((F13-16)*G13)<H13, (F13-16)*G13,((F13-17)*G13)<H13,(F13-17)*G13,
((F13-18)*G13)<H13,(F13-18)*G13),-2)+200
下面是输入和预期结果,如果没有条件匹配,则返回#N/A
。
3条答案
按热度按时间xpcnnkqh1#
我不知道公式末尾的+200是否应该包含在限值中,因此只需相应地调整公式
把数量和重量相乘再加200。
如果结果等于或大于限值,则将结果设置为限值。
否则使用数量 * 重量+ 200的结果
然后根据初始公式四舍五入
qnakjoqk2#
下面是
IFS()
的外观:我看到三个问题:
IF ((F13-x)*G13)<H13 THEN (F13-x)*G13
,你可以很容易地计算出结果值,不是吗?iq0todco3#
您可以将其简化如下:
并将其向下扩展,或者在单元格
D2
中使用如下阵列版本:下面是输出:
implicit intersection operator(
@
)确保获取FILTER
结果的第一个元素,这相当于获取第一个匹配的条件。如果没有条件匹配,则返回NA()
。名称out
的结果顺序与应通过IFS
测试的顺序相同。使用SEQUENCE
可以简化过程。