总结: TEXTJOIN()
数组上返回空白 - 无法使用 VBA 以其他方式解决问题。
由于限制不允许我创建启用宏的工作簿,我创建了几张严重依赖数组函数的工作表。
到目前为止,一切都进展顺利,但我遇到了一个问题TEXTJOIN()
。
基本上,它是以下公式:
{=TEXTJOIN(CHAR(10);TRUE;IF(A3:A100="test";B3:B100;""))}
返回空白(不是错误)。使用“评估公式”工具显示倒数第二步生成了正确的数组(其中包含两个非空字符串值)。但是,下一步是空的。见屏幕截图:
编辑:更清晰的图片:
这个问题困扰了我很长时间了,所以任何不依赖 VBA 的帮助或替代解决方案都将不胜感激!
答案1
我怀疑您的公式运行正常,但没有 Excel 2016 来验证我的怀疑。我认为您正在连接 100 个回车符。这将导致输出高度超过 1000 像素,但 Excel 只允许行高为 407 像素,因此输出的可见文本部分将被隐藏。
您可以通过以下测试来确认我的怀疑:复制输出单元格 (Summary!C21) 并将其粘贴到空白记事本会话中。如果单元格包含数据,您将能够在记事本中看到它。或者,您可以使用 [F2] 然后 [F9] 将公式转换为其值,然后尝试上下滚动输出。
如果我的怀疑是正确的,恐怕您需要研究另一种显示所需数据的方法 - 可能通过使用额外的公式来过滤掉您想要显示的数据。
答案2
至于“显示所需数据的另一种方法”...虽然 Excel 确实将行高限制为 407 点,而您的数据似乎远远超出了这个范围,导致大部分数据被行高限制所阻挡,但 Excel 不会将其显示限制在这种限制之外。
这可能让我的意思更清楚:如果你有Merge
几行单元格,你可以显示远多于 407 点的内容。因此,对于 1,000 点,合并三行单元格,并将三行的行高设置为你喜欢的任何(允许的)高度,只要它们的总和超过 1,000 点,然后看看是否能显示所有内容。如果没有,请为装置增加高度。如果超出需要,请减去一些。
我有一个 24 英寸的“级”显示器,这可能意味着(美国营销撒谎……)高度远不及这个数字,但看看它,假设它有 15 英寸高(宽度和对角线尺寸是多少……以及这些如何增加以声称某个“英寸级”尺寸在这里并不重要……只有高度才是重要的)。407 点大约是 5½ 英寸高,所以应该显示两个这样的单元格。但事实并非如此。Excel 不会用所有这些令人高兴的胡说八道填满窗口。您可能会遇到同样的问题。
如果是,请将放大倍数降低到显示单元格所需的最低水平。或者,如果“单次拍摄”视图对您的使用并不重要,并且新添加的(2021 年,不是 2018 年!)“平滑滚动”就可以了,请保留它,或者找到一些缩小和平滑滚动的完美结合。
看起来很奇怪,但确实有效。通常,除了专门用于查看本质上是报告的内容或打印此类报告的页面外,Merged
单元格是不受欢迎的。需要注意的是,这里的本质是“对于任何可能想要对屏幕上的内容进行半复杂使用的东西”,而仪表板和其他报告并非如此。相反,它指的是使用公式来收集和整理一行又一行的数据。如果这不是您对本材料的需求,上述解决方案可能适合您。如果您还需要计算机来处理通过这种方法创建的信息,那么上述显示想法可能不适合您的需求,因为在许多情况下,它会使公式变得非常困难。