结合countifs和left函数的Excel

结合countifs和left函数的Excel,excel,countif,Excel,Countif,我有一个清单,我正在对照主要数据检查 主要数据如下所示: 1234 1 1235 1 1234 1 1213 2 1231 2 1212 2 1231 3 1231 3 etc ID 123 1 3 2 1 3 2 etc 我正在对照主要数据检查的列表是: 1 2 3 etc 对于列表中的每个数字,我想计算以123开头的数字,因此输出如下所示: 1234 1 1235 1 1234 1 1213 2 1231 2 1212 2 1231 3 1231

我有一个清单,我正在对照主要数据检查

主要数据如下所示:

1234  1
1235  1
1234  1
1213  2
1231  2
1212  2
1231  3
1231  3
etc
ID  123
1  3
2  1
3  2
etc
我正在对照主要数据检查的列表是:

1
2
3
etc
对于列表中的每个数字,我想计算以123开头的数字,因此输出如下所示:

1234  1
1235  1
1234  1
1213  2
1231  2
1212  2
1231  3
1231  3
etc
ID  123
1  3
2  1
3  2
etc

我已经有了列表中的每个ID。要向下拖动每个数字,我当前有
countifs(a1:a8,a1,b1:b8,“123”)
,它显然产生了一个错误。我知道我需要在这里的某个地方包含
left
,但我不确定在哪里或如何添加。非常感谢。

在主数据表中,添加一列并输入公式,例如:
C1=IF(左(A1,3)=“123”,1,0)
。拖动每个C单元格的公式。然后在列表表的
SUMIFS
中使用该C单元格,例如:
=SUMIFS(C:C,B:B,“=”&E1)
E col for me是您的列表

请参考下面的截图

编辑:

另一个解决方案:
=SUMPRODUCT(-(左(Maindata!$A$1:$A$8,3)=“123”)*(Maindata!$B$1:$B$8=Maindata!D1))
。这个解决方案对我很有效


在主数据表中,添加一列并输入公式,例如:
C1=IF(左(A1,3)=“123”,1,0)
。拖动每个C单元格的公式。然后在列表表的
SUMIFS
中使用该C单元格,例如:
=SUMIFS(C:C,B:B,“=”&E1)
E col for me是您的列表

请参考下面的截图

编辑:

另一个解决方案:
=SUMPRODUCT(-(左(Maindata!$A$1:$A$8,3)=“123”)*(Maindata!$B$1:$B$8=Maindata!D1))
。这个解决方案对我很有效


您可以使用某种产品来实现这一点:

=sumproduct((主数据!$A$1:$A$8=A1)*(左(主数据!$B$1:$B$8)=“123”)


其中A1表示您正在确定的“以123开头的值”的数量,主数据位于工作表Maindata中,范围A1:B8。

您可以使用某种产品来完成此操作:

=sumproduct((主数据!$A$1:$A$8=A1)*(左(主数据!$B$1:$B$8)=“123”)


其中A1代表您正在确定的“以123开头的值”数量,主数据在工作表Maindata中,范围A1:B8。

您的数据是文本形式还是数值形式?如果是前者,您的标准应该是
“123*”
(使用星号表示通配符),如果是后者,您可以使用
“>1230”

将数据转换为文本或数值形式?如果是前者,您的标准应该是
“123*”
(使用星号表示通配符),如果是后者,您可能可以使用
“>1230”

出于某种原因,这只会输入一个具有123的永久id,即使范围内有多个?@user47467此公式输入B1:B3,A1:A3持有OPs示例中所示的列表,表Maindata A1:B8中的样本数据正好给出了OP要求的输出。请详细说明?这一个确实可以向下拖动,因为对主数据的引用是绝对的,而ID引用不是。出于某种原因,这只输入1个有123的永久ID,即使在范围内有多个?@user47467此公式输入B1:B3,A1:A3持有OPs示例中所示的列表,表Maindata A1:B8中的样本数据正好给出了OP要求的输出。请详细说明?这一个确实可以拖下来,因为对主数据的引用是绝对的,而ID引用不是。我想这是一种黑客的方式:我正在添加另一个解决方案。这对我来说很好。我想这是一个很难做到的方法:我正在添加另一个解决方案。这对我来说很好。