Google Sheets如何生成员工姓名的所有两两组合
生成员工姓名两两组合的公式方案
基础版(包含所有组合,含自身及重复配对)
直接基于你已有的筛选公式,通过转置+笛卡尔积+展平来生成所有两两组合:
=LET( employees, ARRAYFORMULA(FILTER(Roster!C2:C&" "&Roster!D2:D, Roster!K2:K = "Employee")), FLATTEN(employees&" - "&TRANSPOSE(employees)) )
进阶版(排除自身组合及重复配对)
如果不需要出现「Bruce Banner - Bruce Banner」这类自身组合,也不想同时出现「A-B」和「B-A」,可以添加行号筛选条件:
=LET( employees, ARRAYFORMULA(FILTER(Roster!C2:C&" "&Roster!D2:D, Roster!K2:K = "Employee")), FLATTEN(FILTER(employees&" - "&TRANSPOSE(employees), ROW(employees) < TRANSPOSE(ROW(employees)))) )
公式说明
LET函数:先定义employees变量,复用你已有的员工姓名筛选结果,避免重复计算TRANSPOSE(employees):把姓名列表转置为列,和原列表形成笛卡尔积ROW(employees) < TRANSPOSE(ROW(employees)):通过行号对比,只保留前序姓名与后序姓名的配对,排除重复和自身组合FLATTEN:把二维的笛卡尔积结果转成一维列表,方便查看
内容的提问来源于stack exchange,提问作者newpyspark
相关产品推荐
相关产品推荐

