组合问题
excel吧
全部回复
仅看楼主
level 9
三毛驴驴 楼主
请问各位Excel大咖,怎样用函数实现下图效果?
2022年04月05日 13点04分 1
level 9
三毛驴驴 楼主
实际上,黄圈中的数据不止是三行三列,
2022年04月05日 13点04分 2
level 9
三毛驴驴 楼主
谢谢。
2022年04月05日 13点04分 3
level 11
'凑了一个看上去长得应该差不多
'行列可以不限,当前数对它右侧所有的数进行组合(组合2)
Option Explicit
Sub abc()
 Dim a, i, j, k, kk, n
 a = [r1].CurrentRegion.Value
 ReDim b(1 To UBound(a) ^ 2, 1 To WorksheetFunction.Combin(UBound(a, 2), 2))
 For j = 1 To UBound(a, 2) - 1
  n = n + UBound(a, 2) - j
  For i = 1 To UBound(a)
   For k = 1 To UBound(a)
    For kk = j + 1 To UBound(a, 2)
     b((i - 1) * UBound(a) + k, kk + n - UBound(a, 2)) = a(i, j) & a(k, kk)
 Next kk, k, i, j
 [r1].Offset(, UBound(a, 2) + 1).Resize(UBound(b), UBound(b, 2)) = b
End Sub
2022年04月05日 14点04分 5
你有很好的理解能力,我还担心没能用语言表达清楚。我要的就是这种效果,可是我不会VBA,我想要函数公式。谢谢你的热心解答。
2022年04月05日 22点04分
VBA写的代码显示的效果会随着数据的变化而变化吗?
2022年04月05日 22点04分
@三毛驴驴 当然可以,selectionchange事件加点条件,如果条件满足再call abc一下就可以了,当然代码会作一点修改的。
2022年04月05日 23点04分
@🌴菠萝蜜🌴 修改成了动态,加了点条件,作了些简单的注释自己修改。
2022年04月05日 23点04分
level 11
'当前工作表selectionchange事件
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal target As Range)
 If target.Columns.Count < 2 Or target.Columns.Count > 20 Then Exit Sub '190 column
 If target.Rows.Count > 200 Then Exit Sub '4*10^4 row
 Call abc(target)
End Sub
Sub abc(target As Range)
 Dim a, i, j, k, kk, n
 a = target.Value
 ReDim b(1 To UBound(a) ^ 2, 1 To WorksheetFunction.Combin(UBound(a, 2), 2))
 For j = 1 To UBound(a, 2) - 1
  n = n + UBound(a, 2) - j
  For i = 1 To UBound(a)
   For k = 1 To UBound(a)
    For kk = j + 1 To UBound(a, 2)
     b((i - 1) * UBound(a) + k, kk + n - UBound(a, 2)) = a(i, j) & a(k, kk)
 Next kk, k, i, j
 target.Offset(, UBound(a, 2) + 1).Resize(UBound(b), UBound(b, 2)) = b
End Sub
2022年04月05日 23点04分 8
level 13
数据在A1:E1, =TRANSPOSE(FILTERXML("<a><b>"&TEXTJOIN("</b><b>",1,IF(COLUMN(A:E)>ROW(1:5),INDEX(A1:E1,ROW(1:5))&INDEX(A1:E1,COLUMN(A:E)),""))&"</b></a>","a/b"))
2022年04月06日 00点04分 9
谢谢你,但是手机版Excel用不了filterxml,
2022年04月06日 03点04分
level 9
三毛驴驴 楼主
啊?
2022年04月06日 10点04分 10
level 9
三毛驴驴 楼主
啊?
2022年04月07日 05点04分 11
level 7
这函数应该是做不了的,
这就是编程里面的回溯案例
力扣问题里面天天刷这种案例
2022年04月07日 06点04分 12
1