Excel自定义项:混合文本单元格中的数字与列表中相应的重复项之和

Excel自定义项:混合文本单元格中的数字与列表中相应的重复项之和,excel,user-defined-functions,Excel,User Defined Functions,我有一份类似的清单: G:1 Diagonal Lattice - 5/16" Lath (1x2 Framed) S.S (PW) O:1 4 p G:2 DLT (Diagonal Lattice Top) 2x4 Fr 1x6 T&G Y-Brds O:2 12PCS G:3 Diagonal Lattice - 5/16" Lath (1x2 Framed) S.S (PW) O:3 3pc G:4 Diagonal L

我有一份类似的清单:

G:1 Diagonal Lattice - 5/16" Lath (1x2 Framed) S.S (PW)          O:1 4 p
G:2 DLT (Diagonal Lattice Top) 2x4 Fr 1x6 T&G Y-Brds             O:2 12PCS
G:3 Diagonal Lattice - 5/16" Lath (1x2 Framed) S.S (PW)          O:3 3pc
G:4 Diagonal Lattice - 5/16" Lath (1x2 Framed) S.S (PW)          O:4 6 pc
G:5 DLT (Diagonal Lattice Top) 2x4 Fr 1x6 T&G Y-Brds             O:5 4 PC
G:6 SLT (Square Lattice Top) 2x3 OT3 Fr 1x4 T&G                  O:6 2pcs
我不想调整列表,我只需要对值求和

预期结果如下:

T:1 Diagonal Lattice - 5/16" Lath (1x2 Framed) S.S (PW)           U:1 16
T:2 DLT (Diagonal Lattice Top) 2x4 Fr 1x6 T&G Y-Brds              U:2 13
T:3 SLT (Square Lattice Top) 2x3 OT3 Fr 1x4 T&G                   U:3 2
由于混合文本,至少到目前为止,我无法使用没有错误的sumif

标签-项目=G1:G3701 数量=O1:O3701

={sumif(Item, T1, Qty)}
={sumif(Item, T1, value(left(Qty, find("p",Qty)-1)))}
这两种方法都不管用。 我已经尝试添加一个函数来删除这些数字

={sumif(Item, T1, getNumeric(Qty))}
但是,我相信它失败的原因也是一样的

我已经测试了getNumeric函数,它在sumif之外工作 我制作了一个透视表来提取不同的值并进行排序,这一部分很简单。但是我不能把理货的价值加起来,或者不知道怎么加

是否有一个udf可以工作


编辑:修复以提供更清晰的所需结果,sry。

假设片段缩写始终存在,且始终以p开头,且数字始终位于其左侧,则可以使用以下公式:

=SUMPRODUCT(($A$1:$A$6=C1)*LEFT($B$1:$B$6,SEARCH("p",$B$1:$B$6)-1))

要处理数字后面没有“PC”的情况,请键入文本。换句话说,它实际上是一个数字。我会使用一个helper列来去除数字,然后使用helper列来执行sumif或sumifs类型的函数

更新 相同的公式适用于新的示例数据,并针对新列进行了调整:

=SUMPRODUCT(($G$1:$G$6=T1)*LEFT($O$1:$O$6,SEARCH("p",$O$1:$O$6)-1))

假设片段缩写始终存在,且始终以p开头,且数字始终位于其左侧,则可以使用以下公式:

=SUMPRODUCT(($A$1:$A$6=C1)*LEFT($B$1:$B$6,SEARCH("p",$B$1:$B$6)-1))

要处理数字后面没有“PC”的情况,请键入文本。换句话说,它实际上是一个数字。我会使用一个helper列来去除数字,然后使用helper列来执行sumif或sumifs类型的函数

更新 相同的公式适用于新的示例数据,并针对新列进行了调整:

=SUMPRODUCT(($G$1:$G$6=T1)*LEFT($O$1:$O$6,SEARCH("p",$O$1:$O$6)-1))

Excel最适合于结构正确的数据。你能过滤数据,去掉字符串,只留下数字吗?像这样的工具可能会有所帮助。我有几千行要过滤。我尽量避免改变原来的工作表。您是否建议将所有项目复制到另一张工作表中,然后进行计算?Excel最适用于结构正确的数据。你能过滤数据,去掉字符串,只留下数字吗?像这样的工具可能会有所帮助。我有几千行要过滤。我尽量避免改变原来的工作表。您是否建议将所有项目复制到另一张工作表中,然后进行计算?谢谢,在本例中确实有效。我应该输入一些实际数据,所以我道歉。我认为数据应该是一样的。B列将是相同的数据。但是,行数据类似于:2x3帧实体(1x4 T&G)2x3帧实体(1x4 T&G)GRN6'x8'2x3帧实体(1x6 T&G)GRN6'x8'=SUMPRODUCT($G$1:$G$3701=G33)*左($O$1:$O$3701,搜索(“p”),$O$1:$O$3701)-1)-这给了我一个#值错误-项目在G列,数量在O列,g33是一个查找重复项的示例,您需要一个要求和的项目列表,就像您在原始示例的C列中所做的一样。将您的G33引用到此列。不确定,但第0列中的空白数字和实际数字可能会导致事情变得更糟。您可能遇到的问题是列表中有一个实际数字。当我将样本数据从
6 pc
更改为
6
时,它给出了相同的错误值。为了避免这种情况,您可以尝试以下公式:
=SUMPRODUCT($G$1:$G$6=T2)*IFERROR(左侧($O$1:$O$6,搜索(“p”),$O$1:$O$6)-1),$O$1:$O$6))
谢谢@ForwardEd。我相信我将不得不分离数据以使其工作。我更喜欢使用自定义项来逐步计算转换后的数据,但您已经提供了帮助。谢谢,在本例中,这确实有效。我应该输入一些实际数据,所以我道歉。我认为数据应该是一样的。B列将是相同的数据。但是,行数据类似于:2x3帧实体(1x4 T&G)2x3帧实体(1x4 T&G)GRN6'x8'2x3帧实体(1x6 T&G)GRN6'x8'=SUMPRODUCT($G$1:$G$3701=G33)*左($O$1:$O$3701,搜索(“p”),$O$1:$O$3701)-1)-这给了我一个#值错误-项目在G列,数量在O列,g33是一个查找重复项的示例,您需要一个要求和的项目列表,就像您在原始示例的C列中所做的一样。将您的G33引用到此列。不确定,但第0列中的空白数字和实际数字可能会导致事情变得更糟。您可能遇到的问题是列表中有一个实际数字。当我将样本数据从
6 pc
更改为
6
时,它给出了相同的错误值。为了避免这种情况,您可以尝试以下公式:
=SUMPRODUCT($G$1:$G$6=T2)*IFERROR(左侧($O$1:$O$6,搜索(“p”),$O$1:$O$6)-1),$O$1:$O$6))
谢谢@ForwardEd。我相信我将不得不分离数据以使其工作。我更愿意使用udf来逐步计算转换后的数据,但您一直很有帮助。