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

时间:2017-03-15 16:01:09

标签: excel excel-formula

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

我想要的是在另一个单元格中更改单元格的内容。 E.g:

1或2或3或4

变为:

#1或#2或#3或#4

我可以使用

单独为一个号码执行此操作
=IF(ISNUMBER($D$37),"#"&$D$37,"")

...这意味着 1 变为#1 ,但我无法知道如何为多个数字执行此操作。

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:5)

如果您有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会将{}放在公式周围。

![enter image description here

如果您没有Office 365 Excel,则需要vba来执行公式所做的事情。

公式逐个字母地重复字符串,并在遇到数字时重新组合#

答案 2 :(得分:4)

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