excel函数技巧:【递归】获取所有的组合-趣帮office教程网

如图B6-G11为源数据,列出了所有款号的部位、颜色、床次、尺码、搭配数据,要求列出所一个款号的所有组合。公式如下:

=LET(fx,LAMBDA(digui,data,n,TOCOL(TOCOL(INDEX(data,,n),1)&"-"&TOROW(IF(n=COLUMNS(data)-1,INDEX(data,,n 1),digui(digui,data,n 1))))),fx(fx,B6:G11,1))

公式思路:本例用递归方法解决,

递归终止条件为:IF(n=COLUMNS(data)-1,即当n的值小于所有列数减1时,取固定值INDEX(data,,n 1),否则执行递归程序。

递归递增序列为:n 1.

递归主体为:TOCOL(TOCOL(INDEX(data,,n),1)&"-"&TOROW(IF(n=COLUMNS(data)-1,INDEX(data,,n 1),即将所有适合的数值全部连接在一起。

本递归的特色是n为逐步递增面不是递减,希望能开拓大家使用递归时的思路。