我有一个数据列表,需要在下一张表中以特定的方式重新排列。
我想让数据自动输入到下一张表中,如下所示,因为总数据实际上很多,并且通过转置和复制粘贴到正确的顺序来完成此操作需要时间。
是否可以通过函数/宏自动排列数据?
答案1
答案2
不确定您希望下一张表上的数据如何格式化。为了匹配图表,我假设 A2->A2、B2->A3 等,直到 A3 ->A13 步骤 1 在源表中将“Spot”指定为 A1 的名称。(如果不想使用名称,可以使用 ($a$1))
第 2 步偏移量使用 Val 的名称遍历数据
- Val=OFFSET(点,1+INT((ROW()-2)/10),MOD(ROW()-2,10))
步骤 3,使用测试来判断空白单元格和原始数据中的 0 是否不同
- =如果(Val="","",Val)
替代方案和解释
RW=1+INT((ROW()-2)/10) 这会计算出偏移量的行分量。10 = 数据有多宽。如果列数较多(或较少),则需要修改 10。-2 用于从第二行开始输出。如果需要,可以进行调整。目标是使第一行()等于零。
CW=MOD(ROW()-2,10) 这将计算出列组件偏移量。数学运算与行运算类似,10 表示宽度,-2 表示第一行。Mod 返回除法后的余数(0、1、2、3、4、5、6、7、8、9、0、1、2...)
使用这些名称,Val 变成
- Val=偏移量(点,rw,cw)
Spot 和 RW、CW 可以根据您从哪里开始数据以及有多少列进行调整。如果输出区域变为 2 列宽,那么 RW 和 CW 需要进行微小调整,以包括 +column()-1 并将宽度更改为 5 而不是 10