我需要在整个行中复制一个数字,但在Excel 2010中作为乘数

例如,如果你看第一行 – 我需要在2.8单元格中复制数量“3” – 所以基本上最后一个单元格(第三单元格)基本上包含3 * .8 = 2.4小时。 希望这个解释清楚。

Qty | Hours | 3 | 2.8 | 3 | 3 | 2.4 | | | | | 7 | 4.6 | 7 | 7 | 7 | 7 | 4.2 | | | 5 | 7.6 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 3 0.5 | 3.5 | 0.5 | 0.5 | 0.5 | 0.25 | | | | 4 | 6.3 | 4 | 4 | 4 | 4 | 4 | 4 | 1.2 | 

如果你有太多的行要覆盖,试试这个…

 Sub ApplyHours() Application.ScreenUpdating = False Dim R As Range Dim I As Long Dim L As Long Dim dblDecimal As Double For Each R In Range(Range("A2"), Cells(Rows.Count, "A").End(xlUp)) L = Int(R.Offset(0, 1)) For I = 2 To L + 2 R.Offset(0, I) = IIf(I = L + 2, (R.Offset(0, 1) - L) * R, R) Next Next R Application.ScreenUpdating = True End Sub 

希望能帮助到你…

当速度老师斯科特·克莱纳(Scott Craner)在格式化并仔细检查我的结果时,正在忙于应答,我想出了以下单元格C2,可以根据需要向下复制到右侧。

 =IF(QUOTIENT($B2,COLUMN(A1))>0, $A2,IF(COLUMN(A1)-QUOTIENT($B2,1)=1,MOD($B2,1)*$A2,"")) 

或者,如果要将B列的小数点位置四舍五入到小数点后一位,可以使用:

 =IF(QUOTIENT($B2,COLUMN(A1))>0, $A2,IF(COLUMN(A1)-QUOTIENT($B2,1)=1,MOD(ROUND($B2,1),1)*$A2,"")) 

概念validation

概念验证

把这个放在C2副本里,远远地覆盖最远和最远的地方:

 =IF(COLUMN(A:A) > INT($B2)+1,"",IF(COLUMN(A:A)<=INT($B2),$A2,MOD($B2,1)*$A2)) 

![在这里输入图片描述


根据您的意见,很明显,列B中的数字不是通过显示舍入数字的确切数字。 它想要的是舍入到一位小数的数字,然后使用这个:

 =IF(COLUMN(A:A) > INT($B2)+1,"",IF(COLUMN(A:A)<=INT($B2),$A2,MOD(ROUND($B2,1),1)*$A2))