由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Joke版 - 重新说明昨晚求助excel的问题,斑竹千万先别删,多谢了!
相关主题
求excel高手帮忙,麻烦斑竹先别删。Re: 数学到底难在哪里呢? (转载)
这里人多,借块地请教问题一个女POSTDOC看了会流泪,男POSTDOC看了会沉默的故事
还是那个excel问题,做了个宏,麻烦帮忙检查一下,谢谢了。普通铅笔、文艺铅笔、二逼铅笔 (zt)
万能的学术版:请教一个Excel分段求和的问题【非笑话】求教美国最便宜的CELL PHONE计划
为什么只有IE才有create shortcut不懂sheet 和shit区别的,请看这个视频 (转载)
红花少年Re: 投行IT部门里哪种工作最好? (转载)
肥肠靠谱的学术版,另一个Excel问题,包子答谢怎么向一个女PHD求婚ZT
学术版Excel求教这个概率能是0么?
相关话题的讨论汇总
话题: sheet1话题: column话题: sheet2话题: cells话题: currentrow
进入Joke版参与讨论
1 (共1页)
q*******n
发帖数: 360
1
昨晚发出去之后没想到大家这么热心,真心谢谢大家的帮助,尤其是蝗虫!
看样子还是我没有说清楚,数据太大了,传不上去。我做个简单的例子你们看看。
Sheet1
------------------------
A1 B1 C1
A2 B2 C2
A3 B3 C3
------------------------
在A2处输入温度值(30),在C2处输入测试值(496),其他的数值不用管。这样
Sheet1就变成
Sheet1
------------------------
A1 B1 C1
30 B2 496
A3 B3 C3
------------------------
Sheet2是这样子的:
-------------------------
Sheet2
------------------------
30 B1 C1
31 B2 C2
32 B3 C3
------------------------
其中第一列就是预设的温度场值,C列是空闲的
问题就是:如何使Sheet1中在C2处输入的那个496自动地找到Sheet2中的C1位置,并保
证在Sheet1中输入下一组的数据时,该值还是存在Sheet2中C1这个位置上?
(1),使用vlookup可以保证第一步,找到位置是没有问题的,但是输入下一组数据时
,Sheet2 中C1处的值就不见了。
(2),确定Sheet2中C1的位置,因为该位置中的温度值是30,这个和Sheet1中在A2处
输入的温度一致。
不知道这次我说明白了没有?在线等大家帮忙,没想到大家这么热心,真心感谢大家!
n****4
发帖数: 12553
2
这个网搜五分钟绝对有解,你费这么大劲贴这,找乐子的爷们娘们谁仔细看啊。

【在 q*******n 的大作中提到】
: 昨晚发出去之后没想到大家这么热心,真心谢谢大家的帮助,尤其是蝗虫!
: 看样子还是我没有说清楚,数据太大了,传不上去。我做个简单的例子你们看看。
: Sheet1
: ------------------------
: A1 B1 C1
: A2 B2 C2
: A3 B3 C3
: ------------------------
: 在A2处输入温度值(30),在C2处输入测试值(496),其他的数值不用管。这样
: Sheet1就变成

d********f
发帖数: 43471
3
你还是奔一个把,保证有解
--------胡汉三

【在 q*******n 的大作中提到】
: 昨晚发出去之后没想到大家这么热心,真心谢谢大家的帮助,尤其是蝗虫!
: 看样子还是我没有说清楚,数据太大了,传不上去。我做个简单的例子你们看看。
: Sheet1
: ------------------------
: A1 B1 C1
: A2 B2 C2
: A3 B3 C3
: ------------------------
: 在A2处输入温度值(30),在C2处输入测试值(496),其他的数值不用管。这样
: Sheet1就变成

x****o
发帖数: 21566
4
对excel不熟,弄个redundant column D保存last C?
K*****2
发帖数: 9308
5
不如发贴吧

【在 q*******n 的大作中提到】
: 昨晚发出去之后没想到大家这么热心,真心谢谢大家的帮助,尤其是蝗虫!
: 看样子还是我没有说清楚,数据太大了,传不上去。我做个简单的例子你们看看。
: Sheet1
: ------------------------
: A1 B1 C1
: A2 B2 C2
: A3 B3 C3
: ------------------------
: 在A2处输入温度值(30),在C2处输入测试值(496),其他的数值不用管。这样
: Sheet1就变成

s*l
发帖数: 9421
6
当然不见了,你在sheet1重新换一组数据时,sheet2将对应sheet11里的新数据,他们
之间是动态关系,找不到的话当然是空的了。小坡的思路我认为是对的。

【在 q*******n 的大作中提到】
: 昨晚发出去之后没想到大家这么热心,真心谢谢大家的帮助,尤其是蝗虫!
: 看样子还是我没有说清楚,数据太大了,传不上去。我做个简单的例子你们看看。
: Sheet1
: ------------------------
: A1 B1 C1
: A2 B2 C2
: A3 B3 C3
: ------------------------
: 在A2处输入温度值(30),在C2处输入测试值(496),其他的数值不用管。这样
: Sheet1就变成

w********e
发帖数: 8594
7
唉。哥见你这么无助,就帮你一把。也算不上最好的办法,但是行得通,而且便于你理
解。
在你进行下面的操作之前,先把你的文件备份。要是以下操作失误,数据丢了,不要怪
我。
第一步:进入EXCEL的FILES->OPTIONS->Customize Ribbon. 在右边的main tabs里勾
上Developer.点OK完事。
第二步:点DEVELOPER菜单->Record Macro.在Shortcut Key里填个快捷键,比如q.点OK
完事。
第三步:点DEVELOPER菜单->Stop Recording Macro.
第四步:按alt+f11.把以下代码拷贝到 ' Keyboard Shortcut: Ctrl+q那一行下面。不
要把End sub 给弄没了。完了关掉代码窗口,代码会自动保存。
第五步:回到Sheet1.将光标定位到第一行。按下你刚才设定好的快捷键,比如ctrl+q.
这个宏按一次快捷键只帮你转一条数据过去。
看看代码里的注释。自己触类旁通吧。
CurrentRow = ActiveCell.Row
ActiveWorkbook.Sheets("Sheet1").Cells(CurrentRow, 1).Select

' Suppose the key in in column A. Change 1 to 2 if it is in column B, 3
if C...
Key = ActiveWorkbook.Sheets("Sheet1").Cells(CurrentRow, 1)

' Suppose the variable to be pasted in sheet2 is in column C. Change 3
to 4 if it is in column D,...
VarToTransfer = ActiveWorkbook.Sheets("Sheet1").Cells(CurrentRow, 3)

' Search the first 100000 records in sheet 2. If you have more records
than this, change this number.
For i = 1 To 100000
' Suppose the key is stored in column A in sheet 2. Change 1 to 2 if
it is in column B, ...
If ActiveWorkbook.Sheets("Sheet2").Cells(i, 1) = Key Then

' If it matches the current key, paste the variable in column c.
ActiveWorkbook.Sheets("Sheet2").Cells(i, 3) = VarToTransfer
' Move to the next row in sheet 1.
ActiveWorkbook.Sheets("Sheet1").Cells(CurrentRow + 1, 1).Select

' In column j of sheet 1, show the progress.
' WARNING: column j will be overwritten. Change 10 to other
numbers if there are data in column j.
' Delete column j before each batch of operations.
ActiveWorkbook.Sheets("Sheet1").Cells(CurrentRow, 10) = "Done"
Exit For
End If
Next
z***i
发帖数: 8285
8
版主开博彩吧。看最后谁帮到了楼主。。

唉。哥见你这么无助,就帮你一把。也算不上最好的办法,但是行得通,而且便于你理
解。
在你进行下面的操作之前,先把你的文件备份。要是以下操作失误,数据丢了,不要怪
我。
第一步:进入EXCEL的FILES->OPTIONS->Customize Ribbon. 在右边的main tabs里勾
上Developer.点OK完事。
第二步:点DEVELOPER菜单->Record Macro.在Shortcut Key里填个快捷键,比如q.点OK
完事。
第三步:点DEVELOPER菜单->Stop Recording Macro.
第四步:按alt+f11.把以下代码拷贝到 ' Keyboard Shortcut: Ctrl+q那一行下面。不
要把End sub 给弄没了。完了关掉代码窗口,代码会自动保存。
第五步:回到Sheet1.将光标定位到第一行。按下你刚才设定好的快捷键,比如ctrl+q.
这个宏按一次快捷键只帮你转一条数据过去。
看看代码里的注释。自己触类旁通吧。
CurrentRow = ActiveCell.Row
ActiveWorkbook.Sheets("Sheet1").Cells(CurrentRow, 1).Select

' Suppose the key in in column A. Change 1 to 2 if it is in column B, 3
if C...
Key = ActiveWorkbook.Sheets("Sheet1").Cells(CurrentRow, 1)

' Suppose the variable to be pasted in sheet2 is in column C. Change 3
to 4 if it is in column D,...
VarToTransfer = ActiveWorkbook.Sheets("Sheet1").Cells(CurrentRow, 3)

' Search the first 100000 records in sheet 2. If you have more records
than this, change this number.
For i = 1 To 100000
' Suppose the key is stored in column A in sheet 2. Change 1 to 2 if
it is in column B, ...
If ActiveWorkbook.Sheets("Sheet2").Cells(i, 1) = Key Then

' If it matches the current key, paste the variable in column c.
ActiveWorkbook.Sheets("Sheet2").Cells(i, 3) = VarToTransfer
' Move to the next row in sheet 1.
ActiveWorkbook.Sheets("Sheet1").Cells(CurrentRow + 1, 1).Select

' In column j of sheet 1, show the progress.
' WARNING: column j will be overwritten. Change 10 to other
numbers if there are data in column j.
' Delete column j before each batch of operations.
ActiveWorkbook.Sheets("Sheet1").Cells(CurrentRow, 10) = "Done"
Exit For
End If
Next

【在 w********e 的大作中提到】
: 唉。哥见你这么无助,就帮你一把。也算不上最好的办法,但是行得通,而且便于你理
: 解。
: 在你进行下面的操作之前,先把你的文件备份。要是以下操作失误,数据丢了,不要怪
: 我。
: 第一步:进入EXCEL的FILES->OPTIONS->Customize Ribbon. 在右边的main tabs里勾
: 上Developer.点OK完事。
: 第二步:点DEVELOPER菜单->Record Macro.在Shortcut Key里填个快捷键,比如q.点OK
: 完事。
: 第三步:点DEVELOPER菜单->Stop Recording Macro.
: 第四步:按alt+f11.把以下代码拷贝到 ' Keyboard Shortcut: Ctrl+q那一行下面。不

A******u
发帖数: 1279
9
听老夫一句劝,标用excel了。excel看似好学,其实问题多多,要实现许多简单功能需
要掌握复杂的语法和词汇。抽时间学个matlab,或者mathematica。一天就能上手。
d********f
发帖数: 43471
10
这事没法选,ms的软件对真正的developer根本没有能用的,但是美国公司的现状就是95
%的大妈或者和不如大妈的大叔在作'技术'工作

【在 A******u 的大作中提到】
: 听老夫一句劝,标用excel了。excel看似好学,其实问题多多,要实现许多简单功能需
: 要掌握复杂的语法和词汇。抽时间学个matlab,或者mathematica。一天就能上手。

s***v
发帖数: 4924
11
我好像看明白楼主的意思了,如果我没理解错的话,很简单的嘛。
楼主的意思是这样吗?
SHEET 1
A B C
1 30 496
2 34 512
3 31 500
4 33 508
5 32 504
SHEET 2
A B C
1 30 a 496
2 31 b 500
3 32 c 504
4 33 d 508
5 34 e 512
楼主是不是想说比如在sheet1中A2输入34,C2输入512,那么sheet2中A5值是34,那么
C5的值就应该是512。
你在sheet2的C列用这个公式:
=INDEX(Sheet1!$C$1:$C$5,MATCH(A1,Sheet1!$A$1:$A$5))
EDIT: 为了配合楼主的例子换sheet1和2的顺序。
OX
发帖数: 516
12
你这个初级问题,大家给了太多高级解决方案。但是你没有提供足够的细节。比如
sheet1 column a的数据是unique还是duplicate allowed。你需要把全部可能性想清楚
,列出来,再找人问。

【在 q*******n 的大作中提到】
: 昨晚发出去之后没想到大家这么热心,真心谢谢大家的帮助,尤其是蝗虫!
: 看样子还是我没有说清楚,数据太大了,传不上去。我做个简单的例子你们看看。
: Sheet1
: ------------------------
: A1 B1 C1
: A2 B2 C2
: A3 B3 C3
: ------------------------
: 在A2处输入温度值(30),在C2处输入测试值(496),其他的数值不用管。这样
: Sheet1就变成

1 (共1页)
进入Joke版参与讨论
相关主题
这个概率能是0么?为什么只有IE才有create shortcut
Re: 有篇文章要投Nature (转载)红花少年
加州27嵗剛畢業碩士男尋找有緣485女 (转载)肥肠靠谱的学术版,另一个Excel问题,包子答谢
17招終極省錢方法!做到最後一條你就…….学术版Excel求教
求excel高手帮忙,麻烦斑竹先别删。Re: 数学到底难在哪里呢? (转载)
这里人多,借块地请教问题一个女POSTDOC看了会流泪,男POSTDOC看了会沉默的故事
还是那个excel问题,做了个宏,麻烦帮忙检查一下,谢谢了。普通铅笔、文艺铅笔、二逼铅笔 (zt)
万能的学术版:请教一个Excel分段求和的问题【非笑话】求教美国最便宜的CELL PHONE计划
相关话题的讨论汇总
话题: sheet1话题: column话题: sheet2话题: cells话题: currentrow