如何在Excel设置固定结果,使其按公式自由组合各列数据,并列出所有组合,急。。
1000=A方案+B方案+C方案(A、B、C三列数自由组合,必须满足公式,并自动列出所有达到上公式组合,最少两列数或更多列)数字和方案都比较多,一个个计算非常巨大,望高手...
1000=A方案+B方案+C方案(A、B、C三列数自由组合,必须满足公式,并自动列出所有达到上公式组合,最少两列数或更多列)数字和方案都比较多,一个个计算非常巨大,望高手指教,非常感谢
按量预算组合方案搭配 A方案 B方案 C方案 数量 产量结果
0 0 0 0 1000=A方案+B方案+C方案
40 70 60 1 (A、B、C三列数自由组合,必须
80 140 120 2 满足公式,并自动列出所有达到
120 210 180 3 上公式组合,最少两列数或更多列)
160 280 240 4
200 350 300 5 简单说:固定计算结果,按公式
240 420 360 6 自由组合,并列出达到要求组合
280 490 420 7
320 560 480 8 例如1:1000=A12+B2+C12=400+0+600
360 630 540 9 例如2:1000=A3+B8+C11=40+420+540
400 700 600 10 例如3:1000=A5+B6+C12=120+280+600
A方案 B方案 C方案 结果
400 0 600 1000
40 420 540 1000
120 280 600 1000 展开
按量预算组合方案搭配 A方案 B方案 C方案 数量 产量结果
0 0 0 0 1000=A方案+B方案+C方案
40 70 60 1 (A、B、C三列数自由组合,必须
80 140 120 2 满足公式,并自动列出所有达到
120 210 180 3 上公式组合,最少两列数或更多列)
160 280 240 4
200 350 300 5 简单说:固定计算结果,按公式
240 420 360 6 自由组合,并列出达到要求组合
280 490 420 7
320 560 480 8 例如1:1000=A12+B2+C12=400+0+600
360 630 540 9 例如2:1000=A3+B8+C11=40+420+540
400 700 600 10 例如3:1000=A5+B6+C12=120+280+600
A方案 B方案 C方案 结果
400 0 600 1000
40 420 540 1000
120 280 600 1000 展开
展开全部
用宏解决,下面供参考。运行前请注意先存档以免出错。
增加宏的方法说明:对准工作表标签击右键选取查看代码,弹出VBA窗口后,在窗口贴入代码。关闭VBA窗口。运行宏可按ALT+F8
Sub FindPlan()
Dim RA As Range, RB As Range, RC As Range, RSum, CA As Range, CB As Range, CC As Range, RR As Range
Dim VA, VB, VC
Set RA = Range("A2:A12") '此处引号内输入方案A的单元格范围
Set RB = Range("B2:B12") '此处引号内输入方案B的单元格范围
Set RC = Range("C2:C12") '此处引号内输入方案C的单元格范围
RSum = 1000
Set RR = Workbooks.Add.Worksheets(1).Range("A1")
Set RA = Union(RA, [IV65536])
Set RB = Union(RB, [IV65536])
Set RC = Union(RC, [IV65536])
RR.Value = "方案A": RR.Offset(0, 1).Value = "方案B": RR.Offset(0, 2).Value = "方案C": RR.Offset(0, 3).Value = "结果"
For Each CA In RA
If CA.Address = "$IV$65536" Then VA = 0 Else VA = CA.Value
For Each CB In RB
If CB.Address = "$IV$65536" Then VB = 0 Else VB = CB.Value
For Each CC In RC
If CC.Address = "$IV$65536" Then VC = 0 Else VC = CC.Value
If VA + VB + VC = RSum Then
Set RR = RR.Offset(1, 0)
RR.Value = VA
RR.Offset(0, 1).Value = VB
RR.Offset(0, 2).Value = VC
RR.Offset(0, 3).Formula = "=SUM(RC[-3]:RC[-1])"
End If
Next
Next
Next
End Sub
增加宏的方法说明:对准工作表标签击右键选取查看代码,弹出VBA窗口后,在窗口贴入代码。关闭VBA窗口。运行宏可按ALT+F8
Sub FindPlan()
Dim RA As Range, RB As Range, RC As Range, RSum, CA As Range, CB As Range, CC As Range, RR As Range
Dim VA, VB, VC
Set RA = Range("A2:A12") '此处引号内输入方案A的单元格范围
Set RB = Range("B2:B12") '此处引号内输入方案B的单元格范围
Set RC = Range("C2:C12") '此处引号内输入方案C的单元格范围
RSum = 1000
Set RR = Workbooks.Add.Worksheets(1).Range("A1")
Set RA = Union(RA, [IV65536])
Set RB = Union(RB, [IV65536])
Set RC = Union(RC, [IV65536])
RR.Value = "方案A": RR.Offset(0, 1).Value = "方案B": RR.Offset(0, 2).Value = "方案C": RR.Offset(0, 3).Value = "结果"
For Each CA In RA
If CA.Address = "$IV$65536" Then VA = 0 Else VA = CA.Value
For Each CB In RB
If CB.Address = "$IV$65536" Then VB = 0 Else VB = CB.Value
For Each CC In RC
If CC.Address = "$IV$65536" Then VC = 0 Else VC = CC.Value
If VA + VB + VC = RSum Then
Set RR = RR.Offset(1, 0)
RR.Value = VA
RR.Offset(0, 1).Value = VB
RR.Offset(0, 2).Value = VC
RR.Offset(0, 3).Formula = "=SUM(RC[-3]:RC[-1])"
End If
Next
Next
Next
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询