繁体   English   中英

如何使用公式将文本附加到Excel中的整数?

[英]How do I append text to an integer in Excel using a formula?

我正在尝试“翻译”包含数字的文本字符串的语法(最终目的是翻译两个医学数据库的搜索词,但这并不是很重要)。

我想要的是在另一个单元格中更改一个单元格的内容。 例如:

1或2或3或4

变成:

#1或#2或#3或#4

我可以单独使用一个数字来执行此操作

=IF(ISNUMBER($D$37),"#"&$D$37,"")

...这意味着1成为#1,但我无法计算出多个数字的处理方法。

您提供了一个示例,以便将1或2或3或4转换为#1或#2或#3或#4使用,

="#"&SUBSTITUTE(A2, " or ", " or #")

如果您有Office 365 Excel,则使用此数组公式:

=TRIM(CONCAT(IF(ISNUMBER(--TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),999*( ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)+1,999))),"#" & TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),999*( ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)+1,999))&" ",TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),999*( ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)+1,999))&" ")))

作为数组公式,退出编辑模式时必须使用Ctrl-Shift-Enter而不是Enter进行确认。 如果操作正确,则Excel会将{}放在公式周围。

![在此处输入图片描述

如果您没有Office 365 Excel,它将需要vba来执行公式的作用。

该公式逐个字母地迭代字符串,并在遇到数字时将其重新组合为#

VBA解决方案,以防万一。

Public Function Hashize(S As String) As String
    Dim Words() As String
    Dim I As Integer
    Words() = Split(S)
    For I = LBound(Words) To UBound(Words)
        If IsNumeric(Words(I)) Then
            Words(I) = "#" & Words(I)
        End If
    Next
    Hashize = Join(Words, " ")
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM