我有一个公式,用于遍历动态范围,生成累积行(“Tally”中的#/#代表件数和英尺长度)并将它们堆叠到新表中。
正在处理的数据采用以下格式:
订单号 | 订单行项目 | 库存单位 | 容器 | 相符 | 角色 |
---|---|---|---|---|---|
12345 | 54321 | PNE16系列 | 24680 | 5/8、10/16 | 2 |
数据目前通过以下公式处理成以下格式:
收到数量 | 订单号 | po_item | 股票代码 | 容器 ID | 录制进程 |
---|---|---|---|---|---|
200 | 12345 | 54321 | PNE16系列 | 24680 | 2 |
40 | 12345 | 54321 | PNE16s.8 | 24680 | 2 |
160 | 12345 | 54321 | PNE16s.16 | 24680 | 2 |
我正在尝试稍微改变 received_qty 的计算方式,如下所示:
收到数量 | 订单号 | po_item | 股票代码 | 容器 ID | 录制进程 |
---|---|---|---|---|---|
200 | 12345 | 54321 | PNE16系列 | 24680 | 2 |
5 | 12345 | 54321 | PNE16s.8 | 24680 | 2 |
10 | 12345 | 54321 | PNE16s.16 | 24680 | 2 |
我正在努力思考如何改变累积行生成以适应这种情况。我知道我基本上需要这样做,IF(qty = 0, return qty * len, ELSE return qty
但我实际上并不确定如何将其输入。任何提示或帮助都将不胜感激!“po_info”是另一张表的索引,它将容纳原始数据(减去标题行),因为我只是在下面的公式中定义它们。
=LET(
data, po_info,
row_indices, SEQUENCE(ROWS(data)),
result, REDUCE(
TEXTSPLIT("RECEIVED_QTY,PO_NUMBER,PO_ITEM,STOCK_CODE,CONTAINER_ID,REC_PROCESS", ","),
row_indices,
LAMBDA(acc_res,cur_row,
LET(
PO_NUMBER, INDEX(data, cur_row, 1),
PO_ITEM, INDEX(data, cur_row, 2),
STOCK_CODE, INDEX(data, cur_row, 3),
CONTAINER_ID, INDEX(data, cur_row, 4),
REC_PROCESS, INDEX(data, cur_row, 5),
tally, INDEX(data, cur_row, 6),
qty_lengths, TEXTSPLIT(TRIM(tally), ","),
result_0, REDUCE(
"cumulative_row",
qty_lengths,
LAMBDA(acc,cur,
LET(
qty_len, TEXTSPLIT(cur, "/"),
qty, INDEX(qty_len, , 1),
len, INDEX(qty_len, , 2),
row_, HSTACK(
qty * len,
PO_NUMBER,
PO_ITEM,
CONCAT(STOCK_CODE, ".", len),
"" & CONTAINER_ID,
REC_PROCESS
),
VSTACK(acc, row_)
)
)
),
cumulative_row, HSTACK(
SUM(INDEX(result_0, , 1)),
PO_NUMBER,
PO_ITEM,
STOCK_CODE,
CONCAT(CONTAINER_ID,),
REC_PROCESS
),
result, VSTACK(cumulative_row, DROP(result_0, 1)),
VSTACK(acc_res, result)
)
)
),
result
)
还不确定为什么第一和第二个表格会损坏,因为它们在预览中没有问题..现在正在处理它们..再次提前感谢!