如何从枚举列表中获取数据?
例如,如果我在单元格中输入 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。步骤:
在空白单元格中输入“一月”,然后将填充柄 12 个单元格向右拖动,直到单元格中填满月份。
在单元格 B1 中,输入
=
并选择包含月份名称的单元格。按F9。您将得到如下公式:
={"January","February","March","April","May","June","July","August"," September","October","November","December"}
编辑公式以合并该
CHOOSE()
函数。
方法 3:INDEX() 和命名范围
- 创建命名范围。为此,请转到公式>定义名称。
- 在姓名字段。就我而言,我使用了个月。
在参考字段(您也可以为此使用*辅助范围***):
={"January";"February";"March";"April";"May";"June";"July";"August"; "September";"October";"November";"December"}
你会得到类似这样的结果:
在单元格 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]")
您可以用“_”替换列表中未出现的任何其他字符。