Excel 如何根据公式结果生成列表

Excel 如何根据公式结果生成列表,excel,list,concatenation,Excel,List,Concatenation,我需要生成一个在列B中找到的值列表,但我只想包括列F中的公式测试TRUE的行。理想情况下,这是一个包含在一个单元格中的列表,其中列出了列B中的所有值,并用逗号分隔 例如: | B | ... | F ---------------------------------- 1 | 15 | | TRUE 2 | 10 | | TRUE 预期结果:“15,10” 我尝试了VLOOKUP和索引/匹配,但迄

我需要生成一个在
列B
中找到的值列表,但我只想包括
列F
中的公式测试TRUE的行。理想情况下,这是一个包含在一个单元格中的列表,其中列出了
列B
中的所有值,并用逗号分隔

例如:

  |    B    |    ...    |    F
----------------------------------
1 |    15   |           |  TRUE
2 |    10   |           |  TRUE
预期结果:“15,10”


我尝试了
VLOOKUP
索引
/
匹配
,但迄今为止一无所获。

如果您有
TEXTJOIN
功能(Office 365,Excel 2016+),您可以使用一个公式:

=TEXTJOIN(",",TRUE,IF(F:F=TRUE,B:B,""))
这是一个数组公式,您需要在按住ctrl+shift键的同时按enter键来“确认”它。如果操作正确,Excel将在公式栏中观察到的公式周围放置大括号
{…}

如果Excel没有
TEXTJOIN
,则可能需要VBA


你应该缩短我使用的整个列范围。较小的范围将提高计算速度。您可以使用动态范围引用,也可以使用确保包含整个数据集的某种大小。

F1和F2是实际的布尔值
TRUE
还是
FALSE
还是文本字符串?您可能需要编写VBA宏来执行此操作。我认为用公式是做不到的。您可以这样做:
=CONCATONATE(IF(F1,B1&“,”,”),IF(F2,B2&“,”,”,”),IF(F3,B3&“,”,”,”),等等)
,但这会很快变得单调乏味。这也会给你留下一个尾随逗号。你能编辑你的帖子,将你使用
VLOOKUP
INDEX
/
MATCH
所做的尝试包括在内吗?不幸的是,我使用的是Excel 2013,没有可用的TEXTJOIN功能。我涉猎过VBA,但不喜欢从头开始编写自己的代码。你能给我一个基本的例子,说明如何使用VBA实现所需的功能吗?谢谢。@DanielKantor有很多关于
的文章。只需搜索类似于
TextJoin VBA