Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 兰色幻想

[通知] 数组公式练习题:三列转一列(有些难度)

[复制链接]
发表于 2007-9-12 21:07 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>兰色幻想</i>在2007-9-12 21:00:02的发言:</b><br/><div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>逍遥自在</i>在2007-9-12 20:54:36的发言:</b><br/><p>=T(INDIRECT("R"&amp;TEXT(MOD(SMALL(IF(A2:C6&lt;&gt;"",ROW(A2:C6)*10+COLUMN(A2:C6)+COLUMN(A2:C6)*1000),ROW(1:11)),1000),"0C0"),))</p><p>仅适用于文本,如果是数字则将T改为N,如果数字文本都有那就需要再加个判断了.</p></div><p>这个思路真是好,学习了。 </p><p>另:<font color="#e6421a">如果列数是20列,公式该怎么改?</font></p></div><font style="BACKGROUND-COLOR: #f3f3f3;">改为这样=T(INDIRECT("R"&amp;TEXT(MOD(SMALL(IF(A2:C6&lt;&gt;"",ROW(A2:C6)*100+COLUMN(A2:C6)*10001),ROW(1:11)),10000),"0C00"),))</font> <p></p>
[此贴子已经被作者于2007-9-12 21:16:42编辑过]
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2007-9-12 21:46 | 显示全部楼层

<p>偶曾经以为逍遥自在是程老师的马甲 后来经过特特确认不是</p><p></p><p>通过多次对一个问题的解答</p><p>偶的感觉是 佩服 偶甘拜下风</p>
回复

使用道具 举报

发表于 2007-9-12 22:13 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>Luckyguy2008</i>在2007-9-12 21:39:21的发言:</b><br/>厉害啊[em17][em17][em17]<br/><br/>逍遥自在来当我们辅导吧<br/></div><p>非常乐意,可是……偶表达太差,有时公式能写出来可说不出来。[em06]</p>
回复

使用道具 举报

发表于 2007-9-12 22:19 | 显示全部楼层

<p>可是……偶表达太差</p><p>不是问题 听他们说 讲几次就好了</p>
回复

使用道具 举报

发表于 2007-9-12 22:19 | 显示全部楼层

<p>逍遥自在先收下我这个笨学生吧,我要多拜几个老师</p>
回复

使用道具 举报

发表于 2007-9-12 22:23 | 显示全部楼层

也收下我吧
回复

使用道具 举报

发表于 2007-9-12 22:40 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>逍遥自在</i>在2007-9-12 20:54:36的发言:</b><br/><p>=T(INDIRECT("R"&amp;TEXT(MOD(SMALL(IF(A2:C6&lt;&gt;"",ROW(A2:C6)*10+COLUMN(A2:C6)+COLUMN(A2:C6)*1000),ROW(1:11)),1000),"0C0"),))</p><p>仅适用于文本,如果是数字则将T改为N,如果数字文本都有那就需要再加个判断了.</p></div><p></p>好像可以把这个R也放到后面去的<br/>=T(INDIRECT(TEXT(MOD(SMALL(IF(A2:C6&lt;&gt;"",ROW(A2:C6)*10+COLUMN(A2:C6)+COLUMN(A2:C6)*1000),ROW(1:11)),1000),"R0C0"),))<br/>
回复

使用道具 举报

发表于 2007-9-12 23:21 | 显示全部楼层

我换个方法,三个数组可以不在一起,超麻烦,最后结果出来了,但F9的结果和Excel中显示的不一样,可能是3维的。<br/><br/>分别定义三个数组为:data1,data2,data3<br/>定义Rows=CHOOSE({1;2;3},ROWS(data1),ROWS(data2),ROWS(data3))<br/>定义Data=SUM(ROWS(data1),ROWS(data2),ROWS(data3))-MMULT(N(ROW($1:$3)&lt;=COLUMN($A:$C)),Rows)<br/>定义RR=ROW(INDIRECT("1:"&amp;SUM(Rows)))<br/><br/>结果=LOOKUP(RR-LOOKUP(RR-1,Data),IF({1,0},RR,INDIRECT("data"&amp;LOOKUP(RR-1,Data,{1;2;3}))))<br/>
回复

使用道具 举报

发表于 2007-9-13 00:27 | 显示全部楼层

<p>谢谢分享</p>
回复

使用道具 举报

发表于 2007-9-13 12:18 | 显示全部楼层

<p>是很有难度</p><p></p>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2025-8-15 21:48 , Processed in 0.976772 second(s), 3 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表