excel数据平均分配

发布网友 发布时间: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

看不到图片

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com