首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TEXTJOIN输出的反向顺序

TEXTJOIN输出的反向顺序
EN

Stack Overflow用户
提问于 2019-07-25 16:32:29
回答 2查看 1.3K关注 0票数 2

我被要求从Excel工作簿中删除Excel。这是为了允许工作簿在没有宏的环境中工作。

代码反转逗号分隔字符串中项的顺序。代码非常简单:

代码语言:javascript
复制
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

它在工作表中使用,例如:

代码语言:javascript
复制
=flipit(TEXTJOIN(",",TRUE,A1:A6))

我编写代码是因为我想不出如何使TEXTJOIN()输出以相反的顺序进行。

我能想到的最好的方法就是使用一个帮助列。因此,在D1中,我输入:

代码语言:javascript
复制
=IF(ROWS($1:1)>COUNTA(A:A),"",INDEX(A:A,COUNTA(A:A)-ROWS($1:1)+1))

然后向下拷贝。用途:

代码语言:javascript
复制
=TEXTJOIN(",",TRUE,D1:D6)

我不敢相信“助手”列对于这么简单的事情是必需的。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-25 16:48:22

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

代码语言:javascript
复制
=TEXTJOIN(",",TRUE,INDEX(A1:A7,N(IF({1},ROWS(A1:A7)-ROW(A1:A7)+MIN(ROW(A1:A7))))))

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

一旦Microsoft将序列发布到Office 365,则可以将其缩短为:

代码语言:javascript
复制
=TEXTJOIN(",",TRUE,INDEX(A:A,SEQUENCE(ROWS(A1:A7),,ROWS(A1:A7),-1)))

通常可以用Enter输入。

票数 8
EN

Stack Overflow用户

发布于 2020-02-02 21:45:17

使用新的动态数组函数,这可以作为

代码语言:javascript
复制
=TEXTJOIN(",",TRUE,INDEX(A1:A6,SORT(ROW(A1:A6),1,-1)*1,1))

或者更好,如果源是泄漏范围

代码语言:javascript
复制
=TEXTJOIN(",",TRUE,INDEX(A1#,SORT(ROW(A1#),1,-1)*1,1))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57206567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档