excel - TEXTJOIN 输出的逆序

标签 excel vba excel-formula

我被要求从 Excel 工作簿中删除 Excel VBA UDF。这是为了允许工作簿在无宏的环境中运行。

该代码颠倒了逗号分隔字符串中项目的顺序。代码非常简单:

Public Function FlipIt(Sin As String) As String
    Dim a, arr

    FlipIt = ""
    arr = Split(Sin, ",")
    For Each a In arr
        FlipIt = a & "," & FlipIt
    Next a
    FlipIt = Left(FlipIt, Len(FlipIt) - 1)
End Function

它在工作表中的使用如下:

=flipit(TEXTJOIN(",",TRUE,A1:A6))

enter image description here

我编写代码是因为我无法弄清楚如何以相反的顺序输出 TEXTJOIN()

我能想到的最好办法就是使用辅助列。所以在D1中我输入:

=IF(ROWS($1:1)>COUNTA(A:A),"",INDEX(A:A,COUNTA(A:A)-ROWS($1:1)+1))

并向下复制。用途:

=TEXTJOIN(",",TRUE,D1:D6)

我不敢相信这么简单的事情需要“帮助器”列。

有什么建议吗?

最佳答案

使用此数组公式来创建向后的名称数组:

=TEXTJOIN(",",TRUE,INDEX(A1:A7,N(IF({1},ROWS(A1:A7)-ROW(A1:A7)+MIN(ROW(A1:A7))))))

作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 确认,而不是 Enter。

enter image description here

<小时/>

一旦 Microsoft 将 SEQUENCE 发布到 Office 365,它可以缩短为:

=TEXTJOIN(",",TRUE,INDEX(A:A,SEQUENCE(ROWS(A1:A7),,ROWS(A1:A7),-1)))

回车即可正常输入。

关于excel - TEXTJOIN 输出的逆序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57206567/

相关文章:

excel - Excel 2003 中的 VBA 代码在 Excel 2010/2013 中无法正常工作

excel - 是否可以根据条件制作数字序列?

需要 VBA 循环逻辑

vba - 没有断点的宏停止

excel - Windows 重新镜像后对象 'createpivottable' 的方法 'pivotcache' 失败

excel - 给定多个范围,如果满足多个条件,则隐藏行

objective-c - 在 Objective-C (iPhone) 中从 Excel 文件中读取数据

excel - 打开一个文件并使用由单元格 "B2" "B9"和 "B4"创建的动态路径将第三张工作表的数据复制/粘贴到工作簿中

excel - CountIfs() Power Query M 中的等效项,自身内的每行计数

Java JDBC-ODBC 无法加载 Excel 驱动程序