有没有一种在Excel中隐藏行或列而不使用VBA的方法?

3
我知道有几种使用宏(VBA)在Excel中显示/隐藏列和行的方法,但我无法找到使用公式或条件格式化来实现此目的的方法。特别感兴趣的是Excel 2007-但如果有人已经在任何版本的Excel中成功实现了这一点,我很想知道。
对于那些想要了解背景的人,我有一个跨越顶部日期和标签下第一列的数据表。我想指定一个日期窗口(另一个工作表上)为两个单元格,其中包含下拉日期(月份),然后在数据表上显示/隐藏相应的列。
4个回答

3
你可能需要第三个表格(或使用指定日期的第二个表格),并使用HLOOKUPS或MATCH函数。
1)使用一个函数根据你的日期范围动态填充所需的列标题。所以在B1中,你会放置=StartDate。
2)单元格C1将是=IF(B1+1<=EndDate,B1+1,""),并复制足够多的列,基于你对人们查找周期长度的评估。
3)然后,单元格B2向下和右侧使用你喜欢的HLOOKUP()或OFFSET(MATCH())组合之一,结合IF来确定是否需要它,例如B2将是=IF(B$1<>"",HLOOKUP(B$1,DataRange,row(B2),false),""),并根据需要复制向下和向右。
然而,关于转置数据然后使用PivotTable的建议,可以使用数据旁边的帮助列(即IF(AND(date>=StartDate,date<=EndDate),"Show","Hide"),然后过滤“Show”在页面字段上。

+1对问题的巧妙处理-从数据本身中派生出来的变量视图窗口。我最终采用了你和安德鲁建议的混合方案。 - AJ.

2

这并不是直接回答你的问题(我强烈怀疑有没有一个直接的答案),但如果你使用数据表来组织你的数据,使数据向下而不是像简单的OLAP立方体那样水平,你可能可以添加一个条件列来检查数据点是否在你的两个阈值之间,然后在数据透视表中组织你的视图。

如果你不喜欢VBA,将列表和表格结合起来非常强大,但不幸的是,VBA确实是这种事情的解决方案。


+1 评论。我同意,列表和表格是强大的选项。通常我不会只用Excel尝试做这件事,但这是客户的要求。 - AJ.
我会接受你的回答,因为我同意这似乎真的无法实现。从电子表格技术的角度来看,实际上也没有必要这样做。再次感谢。 - AJ.

0

很抱歉,如果没有使用VBA是做不到的。(但愿有人可以证明我错了)


我同意这种情绪;-) 但希望有比我更聪明的人! - AJ.

0

高亮相邻的列/行,然后单击 “数据” > “分组” 来隐藏或显示它们。你可以使用灰色区域/边缘中的加号/减号来隐藏/显示行/分组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接