【问题标题】:Remove blank cells calculated from formula using excel删除使用excel从公式计算的空白单元格
【发布时间】:2021-08-03 09:29:49
【问题描述】:

编写了一个简单的公式来根据第一个字符选择 sl.no;但我需要通过删除空白单元格以以下格式格式化输出。

公式

=IF(LEFT(B3,1)="A",A3,"")

预期格式

输出

【问题讨论】:

    标签: excel excel-formula excel-2010 excel-2007


    【解决方案1】:

    试试AGGREGATE()函数。 Excel-2007 没有聚合函数。

    =IFERROR(INDEX($A$3:$A$16,AGGREGATE(15,6,(ROW($A$3:$A$16)-ROW($A$2))/(LEFT($B$3:$B$16,1)=C$2),ROW(1:1))),"")
    

    如果您没有Aggregate() 函数,请使用以下数组公式。

    =IFERROR(INDEX($A$3:$A$16,SMALL(IF(LEFT($B$3:$B$16,1)=C$2,ROW($B$3:$B$16)-ROW($B$2),""),ROW(1:1))),"")
    

    数组公式需要按CTRL+SHIFT+ENTER输入。

    【讨论】:

    • 你的excel版本是多少?
    • =LEFT(ADDRESS(1, ROW(A1), 4, TRUE), (ROW(A1)>26)+1) 垂直创建字母序列...如何水平创建相同的?
    • MS Excel for Mac...有时我也使用谷歌表格...
    • 横向使用=LEFT(ADDRESS(1, COLUMN(A1), 4, TRUE), (COLUMN(A1)>26)+1)
    • =IFERROR(INDEX($A$3:$A$16,SMALL(IF(LEFT($B$3:$B$16,1)=C$2,ROW($B$3:$B$16 )-ROW($B$2),""),ROW(1:1))),"") 不能用 Excel 2007 压缩
    【解决方案2】:

    看起来您在输出表中获得了所需的结果,但格式不正确。从我的角度来看,您的“输出”看起来不错,因为如果您对出现问题/看起来很奇怪有疑问,它让您有机会快速检查一下。作为替代解决方案,您可以只记录一个宏来复制列 A 到 E,将值粘贴到新工作表并对每一列进行排序。这会将空白单元格发送到列的末尾,并以您预期的格式为您提供相同的外观。

    补充:在您发表评论后创建attached file 。按 Alt + F8 编辑/添加要排序的范围。

    【讨论】:

    • 我从来没有研究过宏...如果你有一个关于如何使用 Marco 的示例,你能分享一下吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    相关资源
    最近更新 更多