再次是动态范围 - 再次使用文本字符串
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)
我有一系列数据集(稍后将用于填充组合框),并且我尝试设置动态范围以仅列出具有有用数据的单元格。总共有 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)