excel - 将排列与组限制和匹配这些的查找值相结合

标签 excel excel-formula combinations

我有一张这样的 table enter image description here 我想制作 GROUP 的所有可能组合(但我想要 LOAD Case 值) 但一个组不能在同一组合中存在两次 例如我不能这样做 T + TL + W + Wx 但我可以做 T + TL + WT + TL + Wx

获得组合后,我想添加组合的V、Hy、Hx、My、Mx值 每个都在其相应的列中 因此,对于 V 列的 T & Tl 来说,它将是 3+8 = 11 我有一本更大的工作簿,可能有 900 种组合,我用手做了你在下面看到的内容,可能有一些计算错误,但这只是为了演示我需要什么。 我还希望单元格值是动态的,因此如果我更改橙色表中 V、Hy、Hx、My、Mx 列中的任何值,它将反射(reflect)在灰色表中

最佳答案

哇,这确实是两个问题,但我想通了:

第 1 部分是单个载荷工况与载荷工况组合的可能组合,其中相似组中列出的载荷工况不能彼此组合。这是最难的部分,我需要一些 lambda 才能到达那里:

改进的解决方案:

=LET(a,   A3:A6,
     b,   B3:B6,
     u,   TOROW(UNIQUE(a)),
     pa, REDUCE(TOCOL(u),SEQUENCE(COUNTA(u)-1,,COUNTA(u)-1,-1),
          LAMBDA(c,d,
                 VSTACK(c,
                        REDUCE(TOCOL(u),DROP(u,,d),
                        LAMBDA(e,f,
                               TOCOL(IFS(ISERR(FIND(u,e)),e&";"&u),3)))))),
     pas, SORT(DROP(REDUCE("",pa,LAMBDA(g,h,IFERROR(VSTACK(g,TEXTSPLIT(h,";")),""))),1)),
     pb,  DROP(REDUCE(0,SEQUENCE(ROWS(pas)),LAMBDA(x,y,VSTACK(x,REDUCE("",INDEX(pas,y,),LAMBDA(v,w,TOCOL(v&";"&TOROW(FILTER(b,a=w,"")),3)))))),1),
SUBSTITUTE(TRIM(SUBSTITUTE(pb,";"," "))," "," & "))

此版本不需要在最后使用另一个 lambda,如果数据增加(如注释中的示例文件中所示),它将完全卡住 excel。

旧版本:

=LET(a,   A3:A6,
     b,   B3:B6,
     u,   TOROW(UNIQUE(a)),
     pa,  REDUCE(TOCOL(u),SEQUENCE(COUNTA(u)-1,,COUNTA(u)-1,-1),
          LAMBDA(c,d,
                 VSTACK(c,
                        REDUCE(TOCOL(u),DROP(u,,d),
                        LAMBDA(e,f,
                               TOCOL(IFS(ISERR(FIND(u,e)),e&";"&u),3)))))),
     pas, SORT(DROP(REDUCE("",pa,LAMBDA(g,h,IFERROR(VSTACK(g,TEXTSPLIT(h,";")),""))),1)),
     pb,  DROP(REDUCE(0,SEQUENCE(ROWS(pas)),LAMBDA(x,y,VSTACK(x,REDUCE("",INDEX(pas,y,),LAMBDA(v,w,TOCOL(v&";"&TOROW(FILTER(b,a=w,"")),3)))))),1),
BYROW(DROP(REDUCE("",pb,
           LAMBDA(x, y,
                  VSTACK(x,
                         TEXTSPLIT(y,";")))),1,1),
      LAMBDA(x,
TEXTJOIN(" & ",,x))))

基本上,它首先创建单个(唯一)组到这些唯一组的组合的可能排列,一次添加一个不同的组。

第 2 部分是需要将这些组排列转换为其等效的负载情况,如果有更多等效项,请将它们添加为另一个排列。

enter image description here

然后,为了将 V、Hy、Hx、My、Mx 值与此溢出范围内的相应载荷工况相加,我使用了以下内容:

=MAKEARRAY(ROWS(A8#),COLUMNS(D3:H6),
    LAMBDA(r,        c,
SUM(XLOOKUP(TEXTSPLIT(INDEX(A8#,r),," & "),
            B3:B6,
            INDEX(D3:H6,,c)))))

enter image description here

关于excel - 将排列与组限制和匹配这些的查找值相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76553034/

相关文章:

Excel 公式 - 将列表的子字符串匹配到列表

javascript - 获取多维数组N个元素的所有组合

python - 生成字符串中所有可能的字符组合

excel - 用不同颜色突出显示重复项(以及连接的整行)EXCEL

Excel:仅对可见单元格上的重复值求和一次

excel vlookup 多行到一个单元格中

java - 递归组合生成器内存不足

python - 创建与 EXCEL OFFSET 函数等效的 pandas 函数

arrays - 下标超出范围 VBA Excel 数组

excel - 取决于单元格内容的条件格式(单元格引用后跟特定文本字符串的组合)