Excel:不规范的excel表格该怎么处理
1、一、左右互博第一式案例如下:左博右(不包含空格的数据)解法:在F2单元格输入函数:=INDEX($A$2:$C$4,INT(ROW(A3)/3),MOD(ROW(A3),3)+1)

3、右博左(不包含空格的数据)解法:在D2单元格输入函数:=INDEX($A$2:$A$10,COLUMN(A1)+3*ROW(A1)-3)

5、二、左右互博第二式案例如下:左博右(包含空格的数据)解法:在G2单元格输入函数:{=INDIRECT(TEXT(SMALL(IF($A$2:$D$6<>"",ROW($2:$6)*1000+COLUMN(A:D),9^9),ROW(A1)),"R0c000"),0)}

7、第二步:通过G2单元格下拉填充函数后,ROW(A1)函数返回的内容就是1,2,3,4,5…本煮骢擂…,再通过SMALL函数返回对应大小的值:2001,2002,2003,2004,3001,3002,3004,4001,……;第三步:使用TEXT函数,将这组数列转换成R0C000的格式,就形成了类似R1C1单元格引用的格式R2C001、R2C002、……、R4C001、……;第四步:使用INDIRECT函数将这些R1C1格式单元格文本,形成引用,就得到了我们的结果。这里有必要说一下,INDIRECT函数大家应该不陌生,但是一定要记得,此函数是由两个参数构成的,第2个参数,就是对单元格地址格式的限定,如下图所示:我们函数中使用了INDIRECT(…,0)的结构,(0是FALSE,1是TRUE,我们以前有讲过)就是对R1C1单元格引用的参数。

9、函数解析:其实和上例的思路是一样的,依然利用了“经典的万金油”函数。第一步:使用IF函数,判断当A2:D6单元格区域中的单元格不为空的时候,列号*10^6再加1再加行号乘100,得到下面的数列;就是这么巧妙,我们拿出其中一个数值来分析,后面的函数原理就迎刃而解了。例如:30000203,如果我们去掉30000,那么就是203,按照上例的思路,我们可以理解为2代表“第2行”,3代表“第3列”。之所以我们使用10^6,是为了让这个数字2到第1位数值之间有足够多的0,便于数据区域更大的时候依然可以使用。

11、因为“公式求值”中显示不出MOD函数的数组效果,同学们可以“脑补”画面,形成了201、202、203、204、…、304、…这样的数列。第四步:使用TEXT函数将值转换成R0C00的表达格式;第五步:使用INDIRECT(…,0)函数引出每一个单元格的值,完工。第六步:IFFEROR函数的容错功能。

13、函数解析:我们先看F列单元格的函数。第一步:PHONETIC函数,将B2:B7单元格区域的内容,“连成一串”!

15、第二步:使用SUBSTITUTE函数,将(、)号替换成199个空格。第三步:使用MID函数“截取”这个超长的字符串,这个函剞麽苍足数中最巧妙的就是ROW(A1)*199-198部分,又是“数学问题大于EXCEL问题”的思路,随着ROW函数的下拉,每次都从第n个199减198的位置作为截取点,截取199个字符。这样就把PHONETIC形成的大串字符“截成一段一段的”,而且每一段中都会包含一个字符元素。第四步:再通过TRIM函数,去除截取好的字符串中的空格。及此完成F列的操作。

17、解法:首先复制A列,将其粘贴到E列,点击工具栏中“删除重复项”功能按钮,得到E列内容:在F2单元格输入函数:{=MID(SUBSTITUTE(PHONETIC(OFFSET(A$1,MATCH(E2,A$2:A$24,0),,COUNTIF(A$2:A$24,E2),2)),E2,"、"),2,99)}

19、第二步:使用OFFSET函数,以A1单元格为基础单元格,向下偏移1个位置,向右不偏移,扩展出一个3行2列的新区域。用“平面设计”这个字段来看就是A2:B4区域;

21、第四步:使用SUBSTITUTE函数,将E列对应的值替换成(、)号。以“平面设计”字段为例,就是将上图PHONETIC函数形成的字符串中所有的“平面设计”字符串替换成(、)号;

23、个人建议最终效果如图所示。
