Excel自动增加列中的十进制值,直到列中达到最大值
我正在寻找一种解决scheme来自动增加列中的十进制值,直到每列达到最大值。
我设法给列A {= SUM(B3 + 0,1)}
通过拖拽单元格1到我需要的最大值,但这不是很有效,因为每列有不同的最大值。
如下图所示:
Column A maximum required value 200 Column B maximum required value 400 Column C maximum required value 800 | A | B | C | --------------------------------- #1 | 1,1 | 2,1 | 3,1 | -- mimimum value #2 | 200 | 400 | 800 | -- maximum value --------------------------------- #3 | 1,2 | 2,2 | 3,2 | -- incremented value minimum A$1 + 0,1 | B$1 +0,1 | C$1 + 0,1 #4 | 1,3 | 2,3 | 3,3 | -- incremented value minimum A$3 + 0,1 | B$3 +0,1 | C$3 + 0,1 #5 | 1,4 | 2,4 | 3,4 | -- incremented value minimum A$4 + 0,1 | B$4 +0,1 | C$4 + 0,1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ split #13 | 2,2 | 3,2 | 4,2 | -- incremented value minimum A$12 + 0,1 | B$12 +0,1 | C$12+ 0,1
一些列有> 600行数。
我的问题如何能够用0,1个十进制值填充每个列与VBA脚本或其他Excel公式?
Sub AddValue() Dim Rng As Range, A3 As Range Set Rng = Range("A3:A99999") For Each Al In Rng A3.Value = A3.Value + 0,1 Next End Sub
我怎样才能停止Excel增量值达到一定的价值?
如果我可以通过任何方式填充每个列给出高于最大值我可以筛选出每个colomn与自定义筛选器的值“显示x和xxx之间的值”
变化
更新1:我已经用for循环更新了我的文章中的脚本。 然而,0,1不接受,我需要增加A2以下的单元格,直到(A1)中的最小值达到最大值(A2)
更新2:我现在正在使用一个逻辑公式,当最大值被触发时返回FALSE。
=IF(B2+0,1>B$1;FALSE;B2+0,1)
问题仍然是如何使用VBA填充行,例如“B3”到“B99999”| 'C3'到'C99999'| 'D4'到'D99999'等这个公式在每个单元格递增。 如果解决了,我可以触发一个filter来删除所有包含'FALSE'
您最好将第1行用作行来保存该列的最大值
| A | B | C | --------------------------------- #1 | 200 | 400 | 800 | #2 | 1,1 | 2,1 | 3,1 | #3 |formula|formula|formula|
然后使用下面的公式
=IF(A2+0,1>A$1,A2,A2+0,1) =IF(B2+0,1>B$1,B2,B2+0,1) =IF(C2+0,1>B$1,C2,C2+0,1)
如果你不能使用第1行来存储这些,那么你将需要使用这3个
=IF(A2+0,1>200,A2,A2+0,1) =IF(B2+0,1>400,B2,B2+0,1) =IF(C2+0,1>800,C2,C2+0,1)
如果我正确理解你想要什么,这里是一个VBA解决scheme…
本小节假定单元格A1:C1具有起始号码(例如1.1,2.1,3.1),单元格A2:C2具有结束号码(例如200,400,600)。 该脚本将每个行项目增加0.1,直到达到该特定列的结束数字。 Math.Round是摆脱浮点舍入误差。
Sub Test() Dim i As Long Dim j As Long For i = 1 To 3 Cells(3, i).Value = Cells(1, i).Value + 0.1 j = 3 Do Cells(j + 1, i).Value = Math.Round((Cells(j, i).Value + 0.1), 1) j = j + 1 Loop While Cells(j, i).Value < Cells(2, i).Value Next End Sub