[求助]Excel高手请进

  • h
    handsomeken
    先有一个表格甲
    甲列 乙列 丙列 丁列 戊列 己列
    1 甲 …… …… …… ……
    2 乙 …… …… …… ……
    3 甲 …… …… …… ……
    4 丙 …… …… …… ……

    假设我要将凡是乙列中值为甲的行都放到另一个表格乙里面,并且如果在表格甲有变动时,表格乙也会同时更新。(之前写错了,呵呵。)


    先谢过了。

    [本帖最后由 handsomeken 于 2007-11-27 13:13 编辑]
  • O
    OpEth
    用条件函数,IF。。。。。
  • h
    handsomeken
    然后呢?我对Excel不熟啊……
  • 千秋岁引
    “都放到另一个表格乙里面”才对吧?
    你可以说表格A、表格B,这样就不会自己都搞混了。
  • h
    handsomeken
    改过了,可还是不知道该怎么弄啊?高手们帮帮忙吧
  • 千秋岁引
    “将凡是乙列中值为甲的行都放到另一个表格乙里面”
    这个简单,选中乙列,然后点筛选,自动筛选,在乙列上方出现的下拉菜单中选“甲”,然后把筛选结果复制过去就好。
    同步更新还没想好。
  • 盐水棒冰的替身
    表格乙里面希望怎么排列?
  • O
    OpEth
    如果乙列是B列。。。。。

    在你要的表格中输入以下字符:

    =IF(B1=甲,B1,"")

    然后拷贝整列。。。。。

    当然如果是在另一个工作表中引用,则还需加入路径。。。。。

    [本帖最后由 opeth 于 2007-11-27 13:24 编辑]
  • h
    handsomeken
    表格乙里面只放值为甲的
    然后再有别的表格方乙、丙的。
  • k
    kelaredbull
    Vlookup 函数

    VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

    Lookup_value 为需要在表格数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)第一列中查找的数值。Lookup_value 可以为数值或引用。若 lookup_value 小于 table_array 第一列中的最小值,VLOOKUP 将返回错误值 #N/A。

    Table_array 为两列或多列数据。请使用对区域的引用或区域名称。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。不区分大小写。

    Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num :

    小于 1,VLOOKUP 返回错误值 #VALUE!。
    大于 table_array 的列数,VLOOKUP 返回错误值 #REF!。
    Range_lookup 为逻辑值,指定希望 VLOOKUP 查找精确的匹配值还是近似匹配值:

    如果为 TRUE 或省略,则返回精确匹配值或近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。
    table_array 第一列中的值必须以升序排序;否则 VLOOKUP 可能无法返回正确的值。可以选择“数据”菜单上的“排序”命令,再选择“递增”,将这些值按升序排序。有关详细信息,请参阅默认排序次序。

    如果为 FALSE,VLOOKUP 将只寻找精确匹配值。在此情况下,table_array 第一列的值不需要排序。如果 table_array 第一列中有两个或多个值与 lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A。

    [本帖最后由 kelaredbull 于 2007-11-27 13:27 编辑]
  • h
    handsomeken
    我也在琢磨这个函数,但是该怎么弄呢?
    上面讲的IF函数的用法似乎也不行啊?
  • O
    OpEth
    IF的用法绝对可行的,你再加个筛选就能去除空白行,

    你可以先在A列输入俺给你的公式,B列是你的数据,你看看A列是否顺利把B列里的数据选择引用过来了呢。。。。。
  • k
    kelaredbull
    用IF函数的话,记得一定要指定绝对列
    =IF($B1=甲,$B1,"")
    否则拷贝以后会偏移位置
  • 盐水棒冰的替身
    哦,要整行地放哦
    基本上如果我做这个东西肯定是做个宏……

    假如可以容忍空白行,那么靠IF就解决了。
  • O
    OpEth
    对,这个俺倒是忘了。。。。。
  • h
    handsomeken
  • 盐水棒冰的替身
    甲 是字符串,用双引号框一下
  • h
    handsomeken
    谢谢楼上,这样可以引用一个单元格了,那整行怎么搞,我把每个单元格加入IF,似乎就可以了,呵呵。

    还有,貌似的确会有很多空行……

    空行该如何解决呢?TG真是高手多啊,呵呵。多谢各位大大。用了筛选,貌似排序就可以了,呵呵,多谢多谢

    TG真是神站!!!!

    [本帖最后由 handsomeken 于 2007-11-27 14:01 编辑]
  • h
    handsomeken
    接下来的问题是,如果要对几个标格中的数据进行查找呢?是否可以加上or之类的条件?
  • j
    jinwyp
    if
    vlookup 都可以 不要用什么宏

    空行 一种是批量替换 可以 把表全部粘贴到一个新sheet 然后选择 只粘贴数值

    然后在批量替换

    或者用iserror 函数 iserror(if()) 把if 或vlookup包起来就可以了
  • h
    handsomeken
    楼上的好强大啊

    那可不可以查几个表呢?

    还有,这种情况是行数固定的,如果要是行数也增加了,是不是要相应地去增加引用函数的?
  • O
    OpEth
    多拷贝几行空的放着备用即可。。。。。
  • h
    handsomeken
    哦,多谢啊,呵呵。

    问题基本解决了,多谢各位热心的朋友:D
  • 盐水棒冰的替身
    公式做出来的不够干净:D

    宏爱好者飘过
  • h
    handsomeken
    宏怎么玩啊?是不是很复杂的说?
  • O
    OpEth
    俺倒觉得宏不干净,公式挺好的,文件也小。。。。。
  • 盐水棒冰的替身
    宏不用放进对象文件的。
    常用的通用的宏我都做成xla addin了,自定义菜单。

    只说lz这个需求,写个不太鲁棒的宏也是分分秒秒的事情。
    一个原始数据表,N个条件集计表,做一个button启动一个集计宏
    宏的内部基本上是 删除集计表内容,重新集计,追加集计表内容这样。
    做出来的直接就是纯的值,没有公式,数据行连续而没有空行,无须筛选,不容易被有意或无意篡改(即使被改过了,重新按一下集计button就可以了)
  • O
    OpEth
    自动更新数据这个功能宏做不到吧。。。。。
  • j
    jinwyp
    这种小问题 公式一样可以做得赶净

    只有当公式做不出来的时候才用宏
  • h
    handsomeken
    好奇妙啊……说的东西感觉比量子力学还高深
  • 盐水棒冰的替身
    可以把宏的调用写到Worksheet_SelectionChange这种行为里来实现自动执行宏更新数据的,但是不太合适,因为执行频率会过于频繁。
  • 盐水棒冰的替身
    所以说我只是宏爱好者,基本上公式做出来不够完美的我会选择宏……
    其实大多数情况下公式是可以做到完美了的。

    lz这个例子里的空行就是我眼中的不完美点,请教一下到底怎么用公式自动消灭它们?
    我的要求是数据行连续无空行无须筛选。
    你前面一个回复里的条件粘贴好像不能自动,而iserror的用法我没看明白……
  • O
    OpEth
    有筛选不用你不是蛋痛是什么。。。。。

    话说宏的不能自动更新就更不完美了。。。。。

    [本帖最后由 opeth 于 2007-11-27 15:44 编辑]
  • 盐水棒冰的替身
    挨踢人士小小的强迫症:D
  • 盐水棒冰的替身
    过程完美和结果完美的不同追求罢了。

    况且宏偏偏是能做到自动更新的。
    宏可以通过设置调用时机来实现"自动更新",执行频率是一个问题,但不是不能解决的,除了刚才说的表格甲的Worksheet_SelectionChange以外,比如说还可以放到表格乙的Worksheet_Activate里去,这样表格乙的sheet被打开的瞬间就会做一次重新更新,不就是"自动更新"了么。
  • O
    OpEth
    你这执行频率是个问题,和公式的随时自动更新比起来,宏的更新能力太差了。。。。。
  • 盐水棒冰的替身
    可见你也有小小的强迫症:D
  • j
    jinwyp
    用公式 把所有非空单元合成一个单元格 在用例如分列功能 这样的字符串公式 把这个单元格分开 大体这个思路 麻烦点
  • 盐水棒冰的替身
    :D 这回理解了,的确可以。

    不愧是专业人士啊。
  • x
    xyxyxy
    lz文字表达给你费劲啊。
    你去google一下excel家庭记账表格之类的东西
    随便下载一个excel表格就有你要的功能,然后看人家表格中的单元格内容,自己复制其中的函数公式格式,然后应用到你的表格里面就行了。
    很简单。
  • h
    handsomeken
    这怎么玩?看起来老复杂的样子……
  • j
    jinwyp
    有点复杂 不过没啥用 有 筛选 分列 数据透视表 功能 放着不用

    一般遇到问题 先用excel 自带的功能 例如 数据透视 然后是公式 条件格式 最后是宏.