【问题标题】:Manipulate and convert item qty data in Excel在 Excel 中处理和转换项目数量数据
【发布时间】:2022-11-29 06:59:18
【问题描述】:

给定原始项目数据的转换因子,我需要计算新项目的数量。 'NewQty' 列是我要解决的问题。 Excel 中是否有可以执行整个计算的公式?

这可能会有所帮助 - 来自另一篇文章,打破 UOM 字符串列已经解决,linked here

例如第一行: OrigItem 有 25 个 CA。您首先要将其转换为其最低的计量单位 (EA)。 'OrigUOMString' 表示 CA 中有 30 个 EA,因此第 1 步: 25 (OrigQty) * 30 (OrigUOMString) = 750 EA

对于新项目,CA 中有 40 个 EA,因此第 2 步: 750 / 40 (NewUOMString) = 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 NewItem# NewUOMString NewUOM NewQty
111xy CA 25 1EA/2PK/12BX/30CA ABC123 1EA/4PK/20BX/40CA CA ?
111xy BX 13 1EA/2PK/12BX/30CA ABC123 1EA/4PK/20BX/40CA CA ?

【问题讨论】:

  • 请分享计算 NewQty 的逻辑。谢谢
  • NewQty 是我要解决的问题。
  • 知道了@Ryan 你能用简单的英语而不是 Excel 公式来解释,如何计算这个数量,我不清楚输入数据,你将如何获得这个数字。获得它的转换因子是什么。请提供您的输入数据,即 NewQty 的预期输出。谢谢
  • 当然!让我编辑帖子来解释

标签: excel data-manipulation


【解决方案1】:

在单元格 H2 中,您可以尝试以下操作(我假设您对问题中列出的每个标签没有任何 excel 版本限制)

=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)))
)

这是输出:

主要思想是创建一个LAMBDA函数(因为我们要多次使用它):GET_UNIT来提取单位信息。我们通过TEXTBEFORE提取单元前的文本,然后通过TEXTAFTER获取最后一个“/”之后的子字符串。剩下的只是使用MAP 遍历所有行,并使用乘数 (m) 和除数 (d) 进行计算。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多