发布网友 发布时间:2022-04-20 23:02
共5个回答
热心网友 时间:2023-10-02 14:53
在B1中输入:
=INT($A1/4)+IFERROR((SMALL(ROW(INDIRECT("1:"&MOD($A1,4))),COLUMN(A1))<>0)*1,0)
然后按Ctrl+Shift+Enter输入公式,再向右、向下填充。
追问不行啊
注意要在编辑状态下按Ctrl+Shift+Enter输入,形成组合公式,组合公式会自动在公式两端加花括号{}。
热心网友 时间:2023-10-02 14:54
公式解法:
①首先要打开迭代计算
文件---选项---公式---迭代运算
钩上
②假设数据列为A列,我们要在B列及B列之后输入公式,B1单元格输入:
=IF(OR(ROW()>ROUNDUP(COUNTA($A:$A)/(COUNTA($1:$1)-1),0),(ROUNDUP(COUNTA($A:$A)/(COUNTA($1:$1)-1),0)*(COLUMN()-2)+ROW())>COUNTA($A:$A)),"",INDEX($A:$A,ROUNDUP(COUNTA($A:$A)/(COUNTA($1:$1)-1),0)*(COLUMN()-2)+ROW()))
然后进行填充,公式会根据填充的列数来平均分配A列的数据。
如A列有16个数据,B1:E4区域内填充公式:
效果为:
7 14 4 5
1 20 2 4
2 14 6 4
10 6 5 2
热心网友 时间:2023-10-02 14:54
假定要分配的个数为N,总数在A列,分配从B列开始,共N列:
N+2列第2行写公式:
=IF(COLUMN()<=MOD($A2,N)+1,INT($A2/N)+1,INT($A2/N))
然后横拖下拉填充。
热心网友 时间:2023-10-02 14:55
假设第一列数据在a1:a16范围,数据分配到b、c、d、e列,参考代码:
Sub PJY()
arr = [a1:a16]
[b1:e16].Clear
brr = [b1:e16]
For i = 1 To 16
a = arr(i, 1)
c = 0
For n = 4 To 2 Step -1
brr(i, n) = Int(a / n)
c = c + brr(i, n)
a = a - brr(i, n)
If brr(i, n) = 0 Then brr(i, n) = ""
Next
brr(i, n) = arr(i, 1) - c
Next
[b1:e16] = brr
End Sub
热心网友 时间:2023-10-02 14:56
看不到图片