在 Google 电子表格中构建一个 table 每个组的总唯一值
Build a table with total unique values for each group in Google Spreadsheet
我正在使用 google 传播sheets。
假设有一些昆虫科在 A 列中具有以下名称,在 B 列中具有以下名称,C 列中具有假想的物种名称(每个属都是独一无二的)。
我需要为每个科(A 列)提供唯一的属数。 table 1.
之后我会给出想要的结果
注意:Culicidae 有 31 行
Table 1- 原始 table
A B C
---------------------------------
1 Culicidae Aedes X
2 Culicidae Aedes Y
Culicidae Aedes Z
Culicidae Aedes W
Culicidae Aedes E
Culicidae Anopheles X
Culicidae Anopheles Y
Culicidae Anopheles Z
Culicidae Anopheles C
Culicidae Anopheles V
Culicidae Anopheles I
Culicidae Anopheles P
Culicidae Anopheles L
Culicidae Anopheles U
Culicidae Coquillettidia A
Culicidae Culex X
Culicidae Culex Y
Culicidae Culex Z
Culicidae Culex V
Culicidae Culex B
Culicidae Culex N
Culicidae Culex M
Culicidae Culex O
Culicidae Culex P
Culicidae Culiseta A
Culicidae Culiseta B
Culicidae Culiseta C
Culicidae Culiseta T
Culicidae Culiseta Y
Culicidae Orthopodomyia W
Culicidae Uranotaenia A
32 Tephritidae Tephritis X
Table 2. 期望的结果
Family Total Number of Unique Genera
--------------------------------------------------
Culicidae 7
Tephritidae 1
Culicidae 对于 B 列有 7 个唯一值,因此在这种情况下,另一个新 table 中的最终期望结果(另一个不同 sheet 中的 table 2)应该是 7。
所以我们首先需要找到 Culicidae 的范围(它是动态的 - 今天 Culicidae 的值范围从 A1 到 A31,明天从 A100 到 A130 或其他,并且可以随时间增加或减少,即,今天有 31 行,明天可以有 90 行或 29 行......)。理想情况下,它应该自动将每个家庭分组到 A 列中 TABLE 2.
然后对于蚊科,它应该找出 B 列中有多少个独特的属,它们是 7 个独特的值。就是这样。我希望这一切都过去了。
我知道要找到唯一值应该是这样的(但这个范围是静态的..而不是动态的...):
=SUMPRODUCT(1/countif($B:$B,$B:$B))
主要困难是仅在一个公式(可以是动态的,并按 Table 2).
虽然可能无法在公式中实现,但使用 Pivot Table 函数将生成您正在寻找的第二个 table,并且是动态的。
在Googlesheet秒,select你的数据范围(Table1) -> 点击Data
-> Select Pivot Table
。从那里确认数据范围是正确的,并且 New sheet 是 selected。单击创建,您应该会移动到新的 sheet,并打开 Pivot table 编辑器窗格。
要获得所需的输出 Table 2 添加 Family
到 行 和 Genera
到 值 。默认情况下,Genera 将按 COUNTA 进行汇总;为了获得唯一计数,您需要做的就是将 COUNTA 更改为 COUNTUNIQUE.
此 Table 将自动更新到原始范围内所做的任何更改,但是请确保如果您 add/remove 更新 数据范围 在 Pivot table 编辑器中。
使用公式:
=QUERY(SORTN(A1:B, 99^99, 2, 2, 1),
"select Col1,count(Col1)
where Col1 is not null
group by Col1
label count(Col1)''")
我正在使用 google 传播sheets。
假设有一些昆虫科在 A 列中具有以下名称,在 B 列中具有以下名称,C 列中具有假想的物种名称(每个属都是独一无二的)。
我需要为每个科(A 列)提供唯一的属数。 table 1.
之后我会给出想要的结果注意:Culicidae 有 31 行
Table 1- 原始 table
A B C
---------------------------------
1 Culicidae Aedes X
2 Culicidae Aedes Y
Culicidae Aedes Z
Culicidae Aedes W
Culicidae Aedes E
Culicidae Anopheles X
Culicidae Anopheles Y
Culicidae Anopheles Z
Culicidae Anopheles C
Culicidae Anopheles V
Culicidae Anopheles I
Culicidae Anopheles P
Culicidae Anopheles L
Culicidae Anopheles U
Culicidae Coquillettidia A
Culicidae Culex X
Culicidae Culex Y
Culicidae Culex Z
Culicidae Culex V
Culicidae Culex B
Culicidae Culex N
Culicidae Culex M
Culicidae Culex O
Culicidae Culex P
Culicidae Culiseta A
Culicidae Culiseta B
Culicidae Culiseta C
Culicidae Culiseta T
Culicidae Culiseta Y
Culicidae Orthopodomyia W
Culicidae Uranotaenia A
32 Tephritidae Tephritis X
Table 2. 期望的结果
Family Total Number of Unique Genera
--------------------------------------------------
Culicidae 7
Tephritidae 1
Culicidae 对于 B 列有 7 个唯一值,因此在这种情况下,另一个新 table 中的最终期望结果(另一个不同 sheet 中的 table 2)应该是 7。
所以我们首先需要找到 Culicidae 的范围(它是动态的 - 今天 Culicidae 的值范围从 A1 到 A31,明天从 A100 到 A130 或其他,并且可以随时间增加或减少,即,今天有 31 行,明天可以有 90 行或 29 行......)。理想情况下,它应该自动将每个家庭分组到 A 列中 TABLE 2.
然后对于蚊科,它应该找出 B 列中有多少个独特的属,它们是 7 个独特的值。就是这样。我希望这一切都过去了。
我知道要找到唯一值应该是这样的(但这个范围是静态的..而不是动态的...):
=SUMPRODUCT(1/countif($B:$B,$B:$B))
主要困难是仅在一个公式(可以是动态的,并按 Table 2).
虽然可能无法在公式中实现,但使用 Pivot Table 函数将生成您正在寻找的第二个 table,并且是动态的。
在Googlesheet秒,select你的数据范围(Table1) -> 点击Data
-> Select Pivot Table
。从那里确认数据范围是正确的,并且 New sheet 是 selected。单击创建,您应该会移动到新的 sheet,并打开 Pivot table 编辑器窗格。
要获得所需的输出 Table 2 添加 Family
到 行 和 Genera
到 值 。默认情况下,Genera 将按 COUNTA 进行汇总;为了获得唯一计数,您需要做的就是将 COUNTA 更改为 COUNTUNIQUE.
此 Table 将自动更新到原始范围内所做的任何更改,但是请确保如果您 add/remove 更新 数据范围 在 Pivot table 编辑器中。
使用公式:
=QUERY(SORTN(A1:B, 99^99, 2, 2, 1),
"select Col1,count(Col1)
where Col1 is not null
group by Col1
label count(Col1)''")