【问题标题】:Is there a fast way to nest a formula or fill formula arguments efficiently in Excel?有没有一种快速的方法可以在 Excel 中有效地嵌套公式或填充公式参数?
【发布时间】:2025-12-24 09:10:06
【问题描述】:

考虑以下公式:
=CHOOSE(index_num, value1, [value2], ...) =CONCATENATE(text1, [text2], ...)

我正在寻找创建公式的方法,例如可以接受最多 254 arguments 的公式,或者可以接受多个参数的其他公式,以便快速填充这些参数。

例如,当今世界上有195 countries

目前许多 Excel 用户采用的方法是手动将每个国家/地区输入到公式中,或者在工作表中创建国家/地区列表,然后通过直接单击单元格来引用每个国家/地区。

在不使用 VBA 或其他编码技术的情况下,将每个国家/地区硬编码到 Excel CHOOSE 或 CONCATENATE 函数的参数列表中的最快方法是什么?

所以一个想法是从 =CHOOSE(Index_Num,A1,B1,C1,...

=CHOOSE(Index_Num,"阿富汗","阿尔巴尼亚","阿尔及利亚",... 或者 =CHOOSE(Index_Num,IF(x,y,z),Sum(a,b,c),Average(a,b,c),...

这个概念是用选择的字符串填充公式参数,而不是使用单元格引用或单个单元格。

有没有一种快速的方法可以在 Excel 中有效地嵌套公式或填充公式参数?

由于标题包含有关嵌套公式的信息,如果该解决方案适用于国家列表但不适用于公式列表,请说明原因。

请注意,答案不是寻求 VBA/编码解决方案,但是,它们可能包含在内。

编辑: 为清晰起见进行了编辑。

【问题讨论】:

  • 为什么是“硬编码”?引用范围并使用 INDEX/MATCH 而不是 CHOOSE 有什么问题,限制是行数。
  • @ScottCraner 好吧,因为 CHOOSE 被用作示例。我需要将标题问题编辑到问题的正文中,以澄清所填充的功能无关紧要。这与在列表中查找项目无关。
  • 请用一个真实的例子。您想通过实际公式实现的目标。很难理解。请说明您的输入和预期输出。
  • 从理论的角度来看,这是一个有趣的问题,但不是从实践的角度来看。尽管许多函数(例如 CHOOSE)确实允许大量参数,但我不记得有这样一个示例,其中使用具有许多参数的函数不能被具有少量参数的函数替换,并且它引用了一个小参数。范围(或数组)的数量。后一种设置不仅使公式更简洁,而且还具有不受前一种硬编码参数不灵活的影响。
  • 我不同意您重新选择的观点,尽管对于 CONCATENATE,我同意您的观点,该功能是一个例外(谢天谢地,对于新的 CONCAT 和 TEXTJOIN 来说是多余的)。我总是习惯 1) 将所需的条目粘贴到连续的垂直单元格范围中,例如A1:A200; 2)在某处的随机单元格中输入公式 =TRANSPOSE(A1:A200) ; 3)进入公式栏,好像要编辑它,突出显示整个公式,然后按 F9; 4)删除结果数组任一端的大括号; 5) 在等号后输入 CONCATENATE( 并按 ENTER。

标签: excel excel-formula


【解决方案1】:

我不确定您要使用 CHOOSE 函数实现什么。 要在国家/地区列表中查找值,您可以使用LOOKUPINDEXMATCH 的组合。

Interesting article 与 SUMIF 、 LOOKUP 和 INDEX/MATCH 的比较。

但作为一个理论练习,并以您为函数添加 192 个参数为例,我将使用文本函数在 Excel 中单独创建函数的参数列表,将国家列表与 " 和 ; . 我会这样构造函数的参数,最后获取结果并将其复制/粘贴为函数的参数。

【讨论】:

    最近更新 更多