新足迹

 找回密码
 注册

精华好帖回顾

· 中国孩子在childcare (2010-7-22) 冰咖啡 · 溜溜达达 Vivid Sydney 2014 采风 (多图) (2014-6-8) feihong
· 参加活动——轻狂的孤寂 (2013-6-12) rockbox · 分享在美国的工作和生活,给有意来美的你们(2019旅程结束,回澳了:) (2014-12-18) 谙旎
Advertisement
Advertisement
查看: 1591|回复: 17

[其他] 请教个excel的问题,谢谢 [复制链接]

发表于 2012-6-22 13:20 |显示全部楼层
此文章由 岸芷汀兰 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 岸芷汀兰 所有!转贴必须注明作者、出处和本声明,并保持内容完整
现有表格中横轴表示x,比如第一行中显示x=1,x=2,x=3....;纵轴表示y,第一列中y=1,y=2,y=3.....
             x=1     x=2    x=3 ..........
y=1        ***      ***    ***
y=2       ***        ***   ****
y=3
.
.
.

现在想把x,y放到第一二列,变成类似坐标那样,比如:
X   Y    VALUE
1   1       ***
1    2      ***
.
.
.
.
.
不知道有没有函数可以做到这样,求高手帮忙,谢谢了
Advertisement
Advertisement

发表于 2012-6-22 17:14 |显示全部楼层
此文章由 andy84 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 andy84 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不熟悉excel,仅供参考。楼主先修改用公式转成
             x=1                x=2                  x=3 ..........
y=1     y=1;x=1,***      y=1;x=2,***       y=1;x=3,***
y=2      y=1;x=1,***     y=1;x=2,***       y=1;x=2,***   
y=3

然后参考下offset 转置方法
.

发表于 2012-6-22 19:36 |显示全部楼层
此文章由 Elina_w 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Elina_w 所有!转贴必须注明作者、出处和本声明,并保持内容完整
可以用函数 Index( array, row_number, column_number )
假设数据在Sheet1的位置如下:
     A          B         C        D
1               x=1     x=2    x=3
2  y=1       ***      ***      ***
3  y=2       ***      ***      ****
数据在Sheet2如下:
    A   B    C      
1  X   Y    VALUE
2  1   1       ***
3  1    2      ***

在Cell C2,输入公式:Index(Sheet1!$A$1:$D$3,B2+1,A2+1)
copy C2, paste at C3 and so on

[[i] 本帖最后由 Elina_w 于 2012-6-22 19:45 编辑 [/i]]

评分

参与人数 1积分 +3 收起 理由
岸芷汀兰 + 3 感谢分享, 但好像不行,直接copy sheet2 中的C2?

查看全部评分

发表于 2012-6-22 20:39 |显示全部楼层
此文章由 feifei2012 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 feifei2012 所有!转贴必须注明作者、出处和本声明,并保持内容完整
楼上的方法还是没法完全做到吧,楼主的例子中X和Y是要重复出现的啊

发表于 2012-6-22 20:48 |显示全部楼层
此文章由 乖包子 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乖包子 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 Elina_w 于 2012-6-22 19:36 发表
可以用函数 Index( array, row_number, column_number )
假设数据在Sheet1的位置如下:
     A          B         C        D
1               x=1     x=2    x=3
2  y=1       ***      ***      ***
3  y=2       ...


如果X和Y是顺序排列的,那么这答案就是对的。

发表于 2012-6-23 00:09 |显示全部楼层
此文章由 岸芷汀兰 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 岸芷汀兰 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 Elina_w 于 2012-6-22 19:36 发表
可以用函数 Index( array, row_number, column_number )
假设数据在Sheet1的位置如下:
     A          B         C        D
1               x=1     x=2    x=3
2  y=1       ***      ***      ***
3  y=2       ...


首先先谢谢,假设的数据和我需要的一样,但是在c3中只是复制c2的公式吗?好像不可以,能否具体说明一下
Advertisement
Advertisement

发表于 2012-6-23 00:15 |显示全部楼层
此文章由 岸芷汀兰 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 岸芷汀兰 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 Elina_w 于 2012-6-22 19:36 发表
可以用函数 Index( array, row_number, column_number )
假设数据在Sheet1的位置如下:
     A          B         C        D
1               x=1     x=2    x=3
2  y=1       ***      ***      ***
3  y=2       ...


按照你的公式,在C2中的公式直接下拉,在sheet2中的c2,c3中的值是对的,但是,从C4开始就显示REF了....不知道为什么

发表于 2012-6-23 00:36 |显示全部楼层
此文章由 ToT 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ToT 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不用函数,直接用转置就可以吧。

发表于 2012-6-23 09:30 |显示全部楼层
此文章由 中魂子 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 中魂子 所有!转贴必须注明作者、出处和本声明,并保持内容完整
paste  special - transpose

发表于 2012-6-23 09:38 |显示全部楼层
此文章由 ToT 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ToT 所有!转贴必须注明作者、出处和本声明,并保持内容完整
既然楼主已经解决了,就把转置的具体方法删了啊。

[ 本帖最后由 ToT 于 2012-6-26 21:18 编辑 ]

发表于 2012-6-23 11:09 |显示全部楼层

回复 岸芷汀兰 7# 帖子

此文章由 Elina_w 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Elina_w 所有!转贴必须注明作者、出处和本声明,并保持内容完整
给你发消息了。
需要根据实际情况,修改公式里面数据的范围。
比如26组数据,C2公式为:
Index(Sheet1!$A$1:$AA$27,B2,A2)
再复制公式到C3-C27

[[i] 本帖最后由 Elina_w 于 2012-6-23 11:11 编辑 [/i]]

评分

参与人数 1积分 +4 收起 理由
岸芷汀兰 + 4 谢谢,现在可以了,厉害啊

查看全部评分

Advertisement
Advertisement

发表于 2012-6-23 11:09 |显示全部楼层
此文章由 Elina_w 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Elina_w 所有!转贴必须注明作者、出处和本声明,并保持内容完整
发重了

发表于 2012-6-23 11:24 |显示全部楼层
此文章由 岸芷汀兰 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 岸芷汀兰 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 Elina_w 于 2012-6-23 11:09 发表
给你发消息了。
需要根据实际情况,修改公式里面数据的范围。
比如26组数据,C2公式为:
Index(Sheet1!$A$1AA$27,B2,A2)
再复制公式到C3-C27


谢谢,解决了,太厉害了

发表于 2012-6-23 22:52 |显示全部楼层
此文章由 ToT 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ToT 所有!转贴必须注明作者、出处和本声明,并保持内容完整
说的办法帮不到lz?
还是殊途同归?

发表于 2012-6-24 10:39 |显示全部楼层

回复 ToT 14# 帖子

此文章由 中魂子 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 中魂子 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你看看公式,基本上就和paste  special - transpose没有区别。

发表于 2012-6-25 20:56 |显示全部楼层

回复 中魂子 15# 帖子

此文章由 Elina_w 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Elina_w 所有!转贴必须注明作者、出处和本声明,并保持内容完整
同学们,请仔细看LZ的需求
假设LZ有个100*100的表格,special - transpose 能把这个表格转换成10000*3的表格么?!(monkey08)
Advertisement
Advertisement

发表于 2012-6-25 22:29 |显示全部楼层
此文章由 岸芷汀兰 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 岸芷汀兰 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 ToT 于 2012-6-23 00:36 发表
不用函数,直接用转置就可以吧。


我不是要转置XY,我是相当于要把整个表格重新排一下,象Elina_w说的那样才对,不过还是谢谢

发表于 2012-6-25 22:34 |显示全部楼层
此文章由 minami 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 minami 所有!转贴必须注明作者、出处和本声明,并保持内容完整
LZ可以这样做:

   1. 先转置transpose 行和列  
   2. 再用这个公式   =OFFSET(Sheet1!$A$1,INT((ROW()-1)/N),MOD((ROW()-1),N))

注意,N是你行/列的数值。比如你有三行/列, N=3。

下面演练一下啊:
原来的数据是:
    x=1  x=2  x=3
y=1  1   4     7
y=2  2   5     8
y=3  3   6     9

先转置成如下:
   y=1  y=2  y=3
x=1  1   2    3
x=2  4   5    6
x=3  7   8    9

然后套用公式 =OFFSET(Sheet1!$A$1,INT((ROW()-1)/3),MOD((ROW()-1),3))

结果就是你要的了:
      
x=1   y=1   1   
x=1   y=2   2
x=1   y=3   3
x=2   y=1   4   
x=2   y=2   5
x=2   y=3   6
x=3   y=1   7   
x=3   y=2   8
x=3   y=3   9

[ 本帖最后由 minami 于 2012-6-25 22:36 编辑 ]

评分

参与人数 1积分 +4 收起 理由
岸芷汀兰 + 4 感谢分享,这个方法也很方便

查看全部评分

发表回复

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

本版积分规则

Advertisement
Advertisement
返回顶部