LonelyTB 发表于 2010-11-29 22:12

EXCEL函数问题,详细请见附图,自己有大概的思路但不知如





自己有个大概的想法
余数为1,则填入原表中的A列;余数为2,则填入原表中的B列;余数为3,则填入原表中的C列;余数为4、5,则填充空白换行;然后依次循环。
=IF(MOD(ROW(),5)=1,'SHEET'!A1, IF(MOD(ROW(),5)=2,'SHEET'!B1, IF(MOD(ROW(),5)=3,'SHEET'!C1," ")))

但问题在于A1,B1,C1的1那里不能是常量,必须是变量
比如代码中A1的1,需要改为变量 (ROW() + 4) / 5
B1的1,改为(ROW() + 3) / 5
C1的1,改为(ROW() + 2) / 5
请问这个怎么解决?

或者有什么别的解决方案吗?
拜谢

erinnye 发表于 2010-11-29 22:19

スミオ 发表于 2010-11-30 00:52

复制到word里面
表格->布局->转换为文本,选择一个符号(比如;)
替换所有的;为^p(段落标记)
插入->表格->文本转换为表格

好人修電腦 发表于 2010-11-30 09:19

最笨的办法:Excel里的行列转换,转换后再手动放在一列上
最简单的办法:VBA

60a8930f3d09fc2 发表于 2010-11-30 09:23

使用任何能替换回车的文本编辑器(记事本以外几乎都可以),复制粘贴,先把回车替换成三个回车,再把制表符替换成回车。

好人修電腦 发表于 2010-11-30 09:25


 ActiveSheet..End(xlUp).Row    '取当前工作表行数
 ActiveSheet..End(xlToLeft).Column    '取当前工作表列数

magi 发表于 2010-11-30 11:04

第一行 =INDEX(A:C,(ROW() + 4) / 5,1)
第二行 =INDEX(A:C,(ROW() + 3) / 5,2)
第三行 =INDEX(A:C,(ROW() + 2) / 5,3)
第四行 空白
第五行 空白
第六行以后。。向下填充

net13p 发表于 2010-11-30 12:31

最简单的办法,在每一列边上加一列,然后填充1.2.3....
然后把第3和第4列剪切到第1和第2列下面,再把第5和第6列剪切到最下面
然后按第2列排序
额看漏了,原来还要隔空行,类似的处理办法,就是多加几列而已,改成
A 序 B 序 C 序 NULL 序 NULL 序这样10列,然后参考上面的办法,GO
页: [1]
查看完整版本: EXCEL函数问题,详细请见附图,自己有大概的思路但不知如