none
一个问题可能与汉字排序有关。 RRS feed

  • 问题

  • 我的表格要处理如下事件 :
             A列为设定的序列,可以选择“内六角螺钉”“外六角螺钉”“六角螺母”“轴承”“圆柱销”“平键”……
             B列为与A列对应的国标号,
             要求在A列中选择对应的名称,B列自动生成国标号,
         我试过如果A列是数字或字母很好实现,但改成汉字就乱了,特别是A列很多选项时简直就是乱得一塌糊涂。
        不知道是否与汉字的排序有关,汉字在EXCEL里怎么排序的
    2009年5月12日 11:00

答案

  • 请尝试用vlookup函数。

    如在sheet1中存放零件名称与国标号的对应关系:

      A B
    1 零件 国际号
    2 内六角螺钉 GB0001
    3 外六角螺钉 GB0002
    4 六角螺母 GB0003
    5 轴承 GB0004
    6 圆柱销 GB0005
    7 平键 GB0006

    在sheet2中A列选择零件名称(可使用“数据有效性”),B2单元格输入公式=VLOOKUP(A2,Sheet1!$A$2:$B$7,2,FALSE)并向下填充,结果如下:

      A B
    1 零件 国标号
    2 内六角螺钉 GB0001
    3 平键 GB0006
    4 轴承 GB0004


    关于vlookup的说明如下:

    在表格数组的首列查找指定的值,并由此返回表格数组当前行中其他列的值。

    VLOOKUP 中的 V 参数表示垂直方向。当比较值位于需要查找的数据左边的一列时,可以使用 VLOOKUP 而不是 HLOOKUP。

    语法

    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。

    注解

    • 在 table_array 第一列中搜索文本值时,请确保 table_array 第一列中的数据没有前导空格、尾部空格、直引号(' 或 ")与弯引号(‘或“)不一致或非打印字符。否则,VLOOKUP 可能返回不正确或意外的值。
    • 在搜索数字或日期值时,请确保 table_array 第一列中的数据未存储为文本值。否则,VLOOKUP 可能返回不正确或意外的值。
    • 如果 range_lookup 为 FALSE 且 lookup_value 为文本,则可以在 lookup_value 中使用通配符、问号 (?) 和星号 (*)。问号匹配任意单个字符;星号匹配任意字符序列。如果要查找实际的问号或星号,请在该字符前键入波形符 (~)。

    Microsoft Technet Observer
    2009年5月12日 16:17
    版主

全部回复

  • 请尝试用vlookup函数。

    如在sheet1中存放零件名称与国标号的对应关系:

      A B
    1 零件 国际号
    2 内六角螺钉 GB0001
    3 外六角螺钉 GB0002
    4 六角螺母 GB0003
    5 轴承 GB0004
    6 圆柱销 GB0005
    7 平键 GB0006

    在sheet2中A列选择零件名称(可使用“数据有效性”),B2单元格输入公式=VLOOKUP(A2,Sheet1!$A$2:$B$7,2,FALSE)并向下填充,结果如下:

      A B
    1 零件 国标号
    2 内六角螺钉 GB0001
    3 平键 GB0006
    4 轴承 GB0004


    关于vlookup的说明如下:

    在表格数组的首列查找指定的值,并由此返回表格数组当前行中其他列的值。

    VLOOKUP 中的 V 参数表示垂直方向。当比较值位于需要查找的数据左边的一列时,可以使用 VLOOKUP 而不是 HLOOKUP。

    语法

    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。

    注解

    • 在 table_array 第一列中搜索文本值时,请确保 table_array 第一列中的数据没有前导空格、尾部空格、直引号(' 或 ")与弯引号(‘或“)不一致或非打印字符。否则,VLOOKUP 可能返回不正确或意外的值。
    • 在搜索数字或日期值时,请确保 table_array 第一列中的数据未存储为文本值。否则,VLOOKUP 可能返回不正确或意外的值。
    • 如果 range_lookup 为 FALSE 且 lookup_value 为文本,则可以在 lookup_value 中使用通配符、问号 (?) 和星号 (*)。问号匹配任意单个字符;星号匹配任意字符序列。如果要查找实际的问号或星号,请在该字符前键入波形符 (~)。

    Microsoft Technet Observer
    2009年5月12日 16:17
    版主
  • 哦,我知道了

  • 如果为 TRUE 或省略,则返回精确匹配值或近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。

    table_array 第一列中的值必须以升序排序;否则 VLOOKUP 可能无法返回正确的值。

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

2009年5月13日 9:54