提问人:Ryan Kapsak 提问时间:11/19/2022 最后编辑:Ryan Kapsak 更新时间:11/30/2022 访问量:67
在Excel中操作和转换项目数量数据
Manipulate and convert item qty data in Excel
问:
我需要根据原始项目数据的转换系数计算新项目的数量。“NewQty”列是我试图解决的问题。Excel 中是否有可以执行整个计算的公式?
这可能会有所帮助 - 从另一篇文章中,打破 UOM 字符串列已得到解决,链接在这里。
例如,第一行: OrigItem 有 25 个 CA。您首先要将其转换为最低度量单位 (EA)。“OrigUOMString”表示一个 CA 中有 30 个 EA,因此第 1 步: 25 (OrigQty) * 30 (OrigUOMString) = 750 EA
对于新项目,CA 中有 40 个 EA,因此第 2 步: 750 / 40 (新 UOMString) = 18.75
因此,结果显示新项目的数量将为 18.5 CA,这是进入“NewQty”的结果。
例如,第二行: 13 个 BX,所以 12(来自 OrigUOMString)* 13 (OrigQty) = 156 个 EA
156 / 40 CA (NewUOMString) = 3.9 CA(进入“NewQty”列)
OrigItem# | OrigUnitOfMeasure | OrigQty(原价) | OrigUOMString | 新项目# | NewUOMString | 新UOM | 新品数量 |
---|---|---|---|---|---|---|---|
111xy | CA公司 | 25 | 1EA/2PK/12BX/30CA系列 | 美国广播公司123 | 1EA/4PK/20BX/40CA | CA公司 | ? |
111xy | BX系列 | 13 | 1EA/2PK/12BX/30CA系列 | 美国广播公司123 | 1EA/4PK/20BX/40CA | CA公司 | ? |
答:
1赞
David Leal
11/29/2022
#1
在单元格中,您可以尝试以下操作(我假设您对问题中列出的每个标签没有任何 excel 版本约束)H2
=LET(rng, A2:G3, oUnit, INDEX(rng,,2), oQTY, INDEX(rng,,3),
oStr, INDEX(rng,,4), nStr, INDEX(rng,, 6), nUnit, INDEX(rng,,7),
GET_UNIT, LAMBDA(x,unit, 1*TEXTAFTER(TEXTBEFORE(x, unit), "/", -1)),
MAP(oUnit, oQTY, oStr, nStr, nUnit,LAMBDA(oUn,qty,oSt,nSt,nUn,
LET(m, GET_UNIT(oSt, oUn), d, GET_UNIT(nSt, nUn),
(qty * m)/d)))
)
主要思想是创建一个函数(因为我们将多次使用它):提取单位信息。我们提取单位 via 之前的文本,然后在 via 的最后一个实例之后获得子字符串。其余的只是用于遍历所有行,然后使用乘数 () 和除数 () 进行计算。LAMBDA
GET_UNIT
TEXTBEFORE
/
TEXTAFTER
MAP
m
d
下一个:在Excel中分隔数字和文本
评论