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