根据部分文本计算唯一值

Counting unique values based on partial text

我托盘上的箱子里有很多物品。我想知道如何计算托盘中箱子的唯一数量。

A B C D E
1 Item Pallet-box ID Pallet No. No. of boxes
2 abc P01-B01 P01 5
3 def P01-B01 P02 2
4 ghi P01-B02
5 jkl P01-B02
6 mno P01-B02
7 pqr P01-B03
8 stu P01-B03
9 vwx P01-B04
10 yz P01-B05
11 123 P02-B01
12 456 P02-B02
12 789 P02-B02

因此,根据上述示例,上述货盘 (P01) 有 5 个不同的箱子 (B01-B05),货盘 (P02) 有 2 个不同的箱子 (B01-B02)。我应该使用什么样的公式来获得 E 列中 P01 的 5 和 P02 的 2 的结果?我正在考虑使用 COUNTIF,但它似乎不适用于此处。非常感谢任何advice/help。

如果您有 Excel 365,您可以使用以下公式。

我添加了一些辅助列来实现结果。

=UNIQUE(tblData[Pallet-box ID]) 检索唯一托盘箱(E 列)

基于此=UNIQUE(LEFT(UNIQUE(tblData[Pallet-box ID]),3)) 检索唯一托盘号。 (G 列)

现在我们可以计算托盘箱内的托盘编号:=COUNTIF(E4#,G4# & "*")(H 列)

我自己不是专家,但我刚刚创建了以下示例:

    A  B  C  D  E
 7              a
 8              a
 9              a
10              b
11              b

在一个单元格中,我创建了公式 =UNIQUE(E7:E11) 并在其旁边创建了公式 =COUNTIF(E7:E11,UNIQUE(E7:E11)),这些是结果:

a    3
b    2

因此,结合 COUNTIF()UNIQUE() 基本 Excel 功能可能会对您有所帮助。

编辑:您可以使用辅助列,基于=LEFT(B1,LEN(A1)):我将P01放在单元格“A1”中,P02-B01 在单元格“B1”中,结果是 P02P02-B01 的左侧,基于 P01.

的长度

嗯,如果你用的是Excel2021或者O365,那么你也可以试试这个,

唯一托盘编号

• 单元格 D3

中使用的公式
=UNIQUE(LEFT(Pallet_box_ID,3))

没有。箱数

• 单元格 E3

中使用的公式
=SUMPRODUCT(--(LEFT(UNIQUE(Pallet_box_ID),3)=D3))

其中Pallet_box_ID指范围

=$B:$B

使用定义的名称管理器创建 --> select 范围从 B2:B14 & 按 CTRL + SHIFT + F3 --> 从 Create Names From Selection Dialog Box 检查 Top Row 然后按 Ok,现在你可以参考 名称框 显示范围 B3:B14Pallet_box_ID

另外我会建议你使用这种方式,因为托盘箱 ID 可能是 PO10PO100 然后 LEFT(Pallet_box_ID,3) 不会给你正确的输出,如下图所示

• 单元格 D3

中使用的公式
=UNIQUE(LEFT(Pallet_box_ID,FIND("-",Pallet_box_ID)-1))

• 单元格 E3

中使用的公式
=SUMPRODUCT(--(LEFT(UNIQUE(Pallet_box_ID),FIND("-",UNIQUE(Pallet_box_ID))-1)=D3))