我的表有基于重复ID列列出的重复行。重复行可以具有一个或多个具有唯一值的Characteristic列。我正在尝试计算重复行中哪些Characteristic列具有唯一值。
之前:
+-----+----------+-------------+-----------+------------+
| ID | charType | charFlavour | charColor | charWeight |
+-----+----------+-------------+-----------+------------+
| 123 | gel | mint | blue | 10gms |
| 123 | liquid | mint | blue | 10gms |
| 123 | solid | mint | blue | 10gms |
| 456 | wood | orange | red | 20gms |
| 456 | wood | vanilla | red | 20gms |
| 456 | wood | raspberry | red | 20gms |
| 456 | wood | strawberry | red | 20gms |
| 789 | metal | mango | yellow | 25gms |
| 789 | metal | mango | yellow | 30gms |
| 789 | metal | mango | yellow | 22gms |
| 333 | silica | NA | magenta | 11gms |
| 333 | plastic | NA | white | 11gms |
| 333 | rubber | NA | teal | 11gms |
+-----+----------+-------------+-----------+------------+
之后:
+-------------+-----+-----+-----+-----+-------+
| ID | 123 | 456 | 789 | 333 | Total |
+-------------+-----+-----+-----+-----+-------+
| charType | 1 | 0 | 0 | 1 | 2 |
| charFlavour | 0 | 1 | 0 | 0 | 1 |
| charColor | 0 | 0 | 0 | 1 | 1 |
| charWeight | 0 | 0 | 1 | 0 | 1 |
+-------------+-----+-----+-----+-----+-------+
使用Pivot表或Google Query可以使用这种格式吗?
也许这不是您想要的最优雅的解决方案——谷歌查询语言中似乎没有函数返回列的所有唯一值。但是,对于每个属性,这个解决方案应该成功地计算出有多少ID对应于该属性的多个值。例如,它将计算多个charFlavour
对应的ID数量。以下是要进行的两个步骤/查询:
-
=QUERY(A1:E, "select A, max(B), min(B), max(C), min(C), max(D), min(D), max(E), min(E) group by A", 1)
:这将按字母顺序/数字选择每个属性相对于每个ID的最大值和最小值。它将为每个ID返回一行,包含最小和最大属性值。 -
对于每个属性,使用类似
=QUERY(G1:O, "select count(G) where H != I", 1)
的内容。如果您有四个属性,则需要其中四个调用;只需将CCD_ 4更改为每个属性对应的两列即可。这些QUERY
调用中的每一个都将生成一个只有一个值的表,该表中的ID数对于某个属性具有多个值。