再次是动态范围 - 再次使用文本字符串

Dynamic ranges again - once more, with text strings

我有一系列数据集(稍后将用于填充组合框),并且我尝试设置动态范围以仅列出具有有用数据的单元格。总共有 160 行数据,但要填充的行数会有很大差异。

如果它对此有影响(例如,如果动态范围检测到 "" 不是空白),用于填充范围内单元格的公式是

{=IF(ROW()-ROW(StartPort_NoBlanks)+1>ROWS(StartPort_Blanks)-COUNTBLANK(StartPort_Blanks),"",INDIRECT(ADDRESS(SMALL((IF(StartPort_Blanks<>"",ROW(StartPort_Blanks),ROW()+ROWS(StartPort_Blanks))),ROW()-ROW(StartPort_NoBlanks)+1),COLUMN(StartPort_Blanks),4)))}

(基于@DennisWilliamson 在 https://superuser.com/questions/189737/dynamically-updating-list-of-unique-column-entries-in-excel 的回答)

到目前为止,我都试过了

='Saves_FilterLookups'!$C:INDEX('Saves_FilterLookups'!$C:$C2, COUNTA('Saves_FilterLookups'!$C:$C2))

=OFFSET('Saves_FilterLookups'!$C,0,0,COUNTA('Saves_FilterLookups'!$C:$C),1)

...但两者都给了我整个列表,包括 "blank" 个单元格。

大部分范围包含文本字符串;其他范围之一包含日期。

我错过了什么?我该如何解决?

编辑:为了提供一些背景信息,这里有一些列表。完整列表包含沿其长度分散的条目,重复项被删除到第二列中,并且它们全部合并到第三列中的一个块中。然后它们被填充到用户窗体的组合框中,但所有的空白也都进来了...

这是适合您的潜在解决方案...注意事项是列表上方的单元格需要留空

=IFERROR(INDEX($A:$A,MATCH(0,INDEX(COUNTIF($B:B1,$A:$A),0,0),0)),"")

这将一步生成列表,排序并删除空白。

我相信您的 COUNTA 是您的罪魁祸首。 COUNTA 将对所有含有某种物质的细胞进行计数……不幸的是,“”是某种物质。所以你需要消除“”的计数。所以我添加了一个 -COUNTIF 并假设您之前计算的范围相同。如果全部在同一个工作表上完成,则不需要工作表名称。

=OFFSET('Saves_FilterLookups'!$C,0,0,COUNTA('Saves_FilterLookups'!$C:$C2)-COUNTIF('Saves_FilterLookups'!$C:$C2,""),1)