我的表格中有基于重复ID列列出的重复行。重复的行可能具有一个或多个具有唯一值的特征列。我正在尝试计算重复行中哪些特征列具有唯一值。
之前:
+-----+----------+-------------+-----------+------------+
| 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 |
+-------------+-----+-----+-----+-----+-------+
使用数据透视表或Google查询可以使用这种格式吗?
答案 0 :(得分:1)
也许这不是您要找的最优雅的解决方案-看来Google查询语言中没有函数返回列的所有唯一值。但是,此解决方案应该为每个属性成功计算出对应于该属性的多个值的ID数量。例如,它将计算多少个ID对应于多个charFlavour
。这是要执行的两个步骤/查询:
=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)
的名称。如果您有四个属性,则将需要其中四个调用;否则,您将无法进行任何调用。只需将where H != I
更改为与每个属性相对应的两列即可。这些QUERY
调用中的每一个都会生成一个只有一个值的表,对于某个属性,ID的数目具有多个值。