我有以下公式,该公式基于一列随机(rand())值(J3:J14)来查找列(B3:B14)中单元格的值-
=INDEX(Wordlist_Upper!$B$3:$B$14, IF(Wordlist_Upper!$B$3:$B$14<>"", RANK(Wordlist_Upper!J7, Wordlist_Upper!$J$3:$J$14)))
这很好,但是有时它会返回空白值,因为单元格B3:B14的某些内容可能为空白。
是否有一种方法指示它仅在单元格包含某些内容时才返回值(即忽略B3:B14范围内的空白单元格)?
谢谢
更新:我尝试在中间添加IF(Wordlist_Upper!$B$3:$B$14<>""
,但它仍返回空白
答案 0 :(得分:1)
您处于正确的轨道,但您的IF评估无效,这对您的INDEX语句产生连锁反应。
尝试使用此方法,或者至少针对您的数据量身定制一个变体。
=if((isblank(index($B$3:$B$14,rank(J7,$J$3:$J$14,0))))=true,"cell is empty",isblank(index($B$3:$B$14,rank(J7,$J$3:$J$14,0))))
这嵌套了几个组件。与您的公式相比(语法除外),主要区别在于嵌套的顺序。
这些是组件:
1 - index($B$3:$B$14,rank(J7,$J$3:$J$14,0))
这将从B列获取一个单元格值。行偏移量是J列中的单元格J7的等级(整数)。
2 - isblank(index($B$3:$B$14,rank(J7,$J$3:$J$14,0)))
这将评估由INDEX组件获得的单元格是否为空。如果单元格为空,则公式将返回TRUE;否则,公式将返回TRUE。如果单元格不为空,则公式将返回FALSE。
3 - if(isblank()=TRUE,"cell is empty", index())
最后一个组件是IF语句。释义:
如果B列中的单元格为空(即isblank()= TRUE),则显示一些文本,说明该单元格为空,否则该单元格不为空(即isblank()= FALSE),因此返回INDEX生成的值声明。
显然,您应该用替代的值代替我的“单元格为空” 字符串。老实说,当单元格为空时,我无法弄清楚您想做什么,否则我将完成公式。