问题标签 [textjoin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vba - Excel VBA - 带分隔符和单引号的字符串连接
我有一列单元格。它们需要连接成一个字符串,中间有多个分隔符。
我需要第 1 列中的值中第 2 列中的结果
目前我使用以下公式
并将其复制到 B2 列。
是否有 VBA 代码可以帮助我做到这一点。我确实找到了一些会在单元格之间添加单个分隔符 ' 但我无法修改它以添加多个分隔符。
如果可以共享相同的 VBA 代码,将会非常有帮助。
vba - 使用非空白行和空白行作为头尾循环复制列表
嗨,所以我有一组要复制的数据。基本上我想创建一个 if 函数。如果我们在 B 列中搜索一个空白行并且它是空白的,则循环到下一行,并继续直到第一个非空白行。如果我们点击非空白复制列 c 中所有空白行中的所有单元格。
excel - 从多个单元格中选择值并将输出粘贴到一个单元格中
我有一个数据集,如下所示:
我想将下面的输出粘贴到一个单元格中:
这样我就可以复制它并在其他地方使用它。
vba - 如何将公式输入像条件格式一样输入到 UDF
想象一下,您想检查一个范围内每个单词的左字母是否为“a”,然后加入该条件为真的单词。一种方法是使用辅助列,如果不为真则返回“”,如果它以“a”开头则返回单词,然后是CONCAT()
辅助列上方的总行。
另一种方法是使用数组公式。{=CONCAT(IF(LEFT(range) = "a", range, ""))}
. 无论如何,这实际上是在使用辅助列。
但我想要的是使用条件格式方法:应用条件格式时,您引用范围的左上角单元格。所以对于一个range
in A1:A10
,我想要一个像=CONCATIF(A1:A10, LEFT(A1) = "a")
.
SUMIF
并COUNTIF
接近这个功能,只有他们使用字符串输入">"
,"=..."
它不能引用他们正在测试的单元格(即,没有等价物,LEFT(A1)
因为没有办法在字符串中引用the_cell_I'm current_working_on )
但问题是,如果我制作一个尝试接受类似 的测试的 UDF LEFT("A1") = "a"
,它只会评估那个单元格,而不是像条件格式那样在整个范围内进行评估。
为什么不直接使用数组公式?
好吧,主要是我很想看看 vba 函数是否可以像数组公式那样充当数组公式COUNTIF
- 通过评估指定为参数的某些条件。只有在接受相对公式而不是字符串输入时具有条件格式的功能。
而且,对于这种特定情况,我正在尝试将CONCAT
一些长段落转换为单个字符串。每个段落可能有 1000 个字符,无论出于何种原因,{=CONCAT(IF(LEFT(A1:A10) = "a", A1:A10, ""))}
它都不起作用,因为IF(
对于长段落返回值错误。该公式适用于小段落。但是VBA版本可以concat整个A1:A10
,我只需要一种方法来先运行测试条件!
更新
为了明确起见,我正在寻找以下内容:
- 一个通用的 UDF,它接受一个
RANGE
以及一个布尔FORMULA
输入- 如果需要,这些可以在 UDF 的相同参数中
- UDF 计算范围内每个单元格的布尔公式
- UDF根据结果返回一个数组和值
TRUE
FALSE
- 该数组可以传递给标准数组处理函数,例如
CONCAT
或SUM
- 或者,如果无法返回数组的 UDF,则可以在内部将数组传递给 UDF 的另一部分,然后由其处理它
- 类似于必须在某个点返回/
COUNTIF
的数组,但随后在内部对它们进行计数以返回一个数字,而不是数组,因此不能作为数组公式输入。TRUE
FALSE
- 我对如何生成这个布尔数组感兴趣
现在研究表明有 3 种主要方式:数组函数,无论出于何种原因,它都不能保存长字符串,CONCATIF
/SUMIF
类型函数,它将文本参数作为布尔测试,但在测试类型上受到严重限制。第三种方法是条件格式使用的方法;选择一个范围,公式测试在所选范围内的所有单元格上运行,返回TRUE
或FALSE
(内部),这个布尔数组用于格式化范围内的单元格。但在 UDF 中,它们可以很容易地作为结果传递或在内部用于进一步计算(例如CONCATIF
函数)
因此,我正在寻找以下之一:(这不是数组公式方法,理想情况下应该在没有ctrl+ shift+的情况下输入enter。)
- 使用类似
COUNTIF
但更好的方法的 UDF:它接受范围参数和公式作为字符串,公式是任何返回布尔值的工作表公式,例如'LEFT(cell)="a"
(注意,文本字符串) - 更好的 UDF,它使用像条件格式这样的方法;接受范围和任何返回布尔值的公式 *未格式化为文本"
- 这会很好,因为您可以使用 Excel 自动提示和范围突出显示来创建公式,如果它是文本则无法执行此操作
- 对于选项 1),布尔公式可以引用“单元格”一词或其作用范围。对于选项 2),它引用范围内的左上角单元格,就像条件格式一样
- 我认为
application.caller
当它不是文本时提取公式部分可能很有用。
- 我认为
- UDF 最终可能会返回许多选项,可以使用工作表函数或自定义计算进一步定制,但正如我所说,我真的很喜欢布尔值列表
起初我没有输入,因为我不想提出code this for me
问题,但我认为我已经在那里提供了足够的细节(以及独立思想的证明!)现在问题是如何而不是什么,我相信在 SO 上更容易接受。
excel - 如果行中有匹配项,则返回列名,查找多个匹配项
我有一张桌子,零件如下;
还有一个是这样的;
第二个表的列中的数字是“单位”。
我试图弄清楚如何获取零件具有 X 的所有单元号。基本上我想得到以下结果;
现在我最近才学会了如何使用 INDEX 和 MATCH,但还没有得到我想要的结果。我试过使用数组公式,但我还不明白。
regex - 如何从连接的文本中提取最后一个正斜杠(/)
我在 excel 中有一个列,其中包含一个由“;”划分的连接字符串 例如
SM/123456789/1;PM/123456789/21;AM/123456789/1;GM/123456789/81;QM/123456789/1
我想返回第二个正斜杠的值,例如
1;21;1;81;1
注意:我将使用仅提取一个输入的最后一个“/ SM/123456789/199
”
这将在 的情况下提取199
或 1 SM/123456789/1
。我如何实现这一目标?这里有数组公式的机会吗?
excel - Vlookup 返回多个值
我正在尝试执行 Vlookup 以返回多个值。但是,该功能需要很长时间才能加载。有没有办法让它更快?我从网上得到了这个功能:https ://www.extendoffice.com/documents/excel/2706-excel-vlookup-return-multiple-values-in-one-cell.html
这是子代码
excel - 如何根据Excel中的多个条件从列中提取所有唯一值
我正在尝试根据 vlookup 类型匹配从列中获取所有不同值的列表。
例如:
表 1:
表 2(所有数据所在的位置)
我希望能够在工作表 2 的 colA 中的工作表 1 中的 colA 中搜索健康系统的名称...并根据它是 PMR 还是 EMR...从 Vendor 列返回唯一值的数量到表 1 中相应列下的一个单元格。
因此,在系统 A 的表 1 中的 EMR 列下,我想要表 2 中供应商列的不同值,其技术 ID 为系统 A 的“EMR”。
在这种情况下,它将是:ClinicA,ClinicE
任何帮助将不胜感激!