如何通过Excel公式得到两个集合的笛卡尔积

问题描述 投票:0回答:1

我需要通过 Excel 365 公式(不是 VBA,不是 Power Query)获得两个“集合”的 笛卡尔积。例如,我的两个集合是两个左表,预期的笛卡尔积是右表:

Cartesian product of two sets in Excel 365

如何通过一个Excel公式得到笛卡尔积?

两套: |第 1 栏 |第 2 栏 | |第 1 栏 |第 2 栏 | |-|-|-|-|-| | 4500005010 |一个 | |采购订单开始 | d | | 4500005011 |乙| |标题合并 |电子| | 4500005012 | C | |采购订单激活 | F |

excel excel-formula cartesian-product
1个回答
0
投票

有一个基于

MAKEARRAY
的解决方案:

Excel formula to get the Cartesian product of two sets in Excel 365

=MAKEARRAY(
  ROWS(Set_1)*ROWS(Set_2),
  COLUMNS(Set_1)+COLUMNS(Set_2),
  LAMBDA(row,col,
         LET(set_num,IF(col<=COLUMNS(Set_1),1,2),CHOOSE(set_num,
            INDEX(Set_1,QUOTIENT(row-1,3)+1,col),
            INDEX(Set_2,MOD(row-1,3)+1,col-COLUMNS(Set_1))))))
© www.soinside.com 2019 - 2024. All rights reserved.