从 Excel 列表中提取项目

从 Excel 列表中提取项目

如何从枚举列表中获取数据?

例如,如果我在单元格中输入 3 A1,我希望单元格B1显示“march”。

A1  3
B1  =FX(A1,"january,february,march,april,may")

有没有什么函数可以实现这个功能?列表可以是任何内容。

答案1

您可以尝试以下几种方法:


方法 1:TEXT() 函数

这仅在您使用月份时才有效。在单元格中B1, 进入:

=TEXT(DATE(2000,A1,1),"mmmm")

您可以将 2000 替换为任意年份数字。如果您想使用当前年份,请将 2000 替换为YEAR(NOW()),尽管使用哪一年其实并不重要。


方法 2:CHOOSE() 函数

在细胞内B1, 进入:

=CHOOSE(A1,"January","February","March","April","May","June","July","August",
           "September","October","November","December")

输入此公式可能很累人。为了更快地完成此操作,您可以尝试 ff。步骤:

  1. 在空白单元格中输入“一月”,然后将填充柄 12 个单元格向右拖动,直到单元格中填满月份。

    在此处输入图片描述

  2. 在单元格 B1 中,输入=并选择包含月份名称的单元格。

    在此处输入图片描述

  3. F9。您将得到如下公式:

    ={"January","February","March","April","May","June","July","August"," September","October","November","December"}

  4. 编辑公式以合并该CHOOSE()函数。


方法 3:INDEX() 和命名范围

  1. 创建命名范围。为此,请转到公式>定义名称
  2. 姓名字段。就我而言,我使用了个月
  3. 参考字段(您也可以为此使用*辅助范围***):

    ={"January";"February";"March";"April";"May";"June";"July";"August"; "September";"October";"November";"December"}

    你会得到类似这样的结果:

    在此处输入图片描述

  4. 在单元格 B1 中,使用 ff. 公式:

    =INDEX(months,A1,1)

***例如,如果您选择在单元格 D1 至 D12 中输入月份。在引用字段中,输入=D1:D12.*

答案2

这只是一个带有键查找(并返回值)的键值定义。使用另一张表来完成此操作枚举列表,并在第一张表上使用 VLOOKUP。

在这种情况下钥匙3价值march,因此 Sheet2 上的内容如下:

A1 = 3
B1 = "march"

然后在 Sheet1 上:

A1 = 3
B1 = VLOOKUP(A1;Sheet1!A:B;2;FALSE)

答案3

您可以使用 vlookup 函数。
在 Sheet 2 中输入
A1 1
B1 Jan
A2 2
B2 Feb
A3 3
B3 Mar

ETC。


现在在 Sheet1 的 B1 单元格中输入公式 =VLOOKUP(A1,Sheet2!$A$1:$B$12,2,FALSE)。
将此公式复制到 B1 下方的单元格。
现在在 A1 下方的单元格中输入月份值。这些将在 B 列的相应单元格中解码。

答案4

到目前为止提供的其他答案建议您将数据重新组织为更适合 Excel 内置函数的格式,并且这样做有充分的理由,但如果您确实必须将数据放在逗号分隔的文本字符串中,那么以下方法将起作用:

A1   3
A2   january,february,march,april,may
A3   =IFERROR(MID(A2,FIND("_",SUBSTITUTE(","&A2&",",",","_",A1)),FIND("_",SUBSTITUTE(","&A2&",",",","_",A1+1))-FIND("_",SUBSTITUTE(","&A2&",",",","_",A1))-1),"[Out of bounds]")

您可以用“_”替换列表中未出现的任何其他字符。

相关内容