这是我的公式:
=IFERROR(((VLOOKUP($D$2,UOS!$A$18:$AC$31,5))/30)*$G$2,"")
该$D$2
字段填充了=Text(c1,"mmmm")
当我使用此公式时,如果月份$D$2
是 1 月、2 月、3 月、5 月、6 月、7 月、9 月、10 月或 11 月,公式$D$2
就会起作用。但如果是 4 月、8 月或 12 月,公式就会不起作用。
表格数组按月份采用相同的格式。
如果我删除 IFERROR,会出现以下错误#value
我已经尝试了所有能想到的方法——格式化、将月份直接输入到 D2 中等等。
我该如何解决这个问题?
答案1
VLOOKUP(lookup_value, table_array, col_index_num) 假设表格按基本排序顺序(字母顺序、数字顺序和时间顺序)排序。由于是D2
文本值(我假设列A
包含文本字符串January
、February
、...),因此字母排序开始发挥作用。“April”、“August”和“December”按字母顺序排在“January”之前;这就是它们失败的原因。您需要将公式更改为
=IFERROR(((VLOOKUP($D$2,UOS!$A$18:$AC$31,5, 错误的))/30)*$G$2,"")
寻找完全匹配,而不是期望列表按字母顺序排列。
按字母顺序,“二月”也排在“一月”之前;你确定这样可行吗?