Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用公式将文本附加到Excel中的整数?_Excel_Excel Formula - Fatal编程技术网

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

如何使用公式将文本附加到Excel中的整数?,excel,excel-formula,Excel,Excel Formula,我试图“翻译”包含数字的文本字符串的语法(最终目的是翻译两个医学数据库的搜索词,但这并不重要) 我想要的是一个单元格的内容在另一个单元格中被改变。例如: 1或2或3或4 变成: #1或#2或#3或#4 我可以用它自己的一个数字来做这件事 =IF(ISNUMBER($D$37),"#"&$D$37,"") 。。。这意味着1变为#1,但我无法解决如何对多个数字执行此操作。如果您有Office 365 Excel,请使用以下数组公式: =TRIM(CONCAT(IF(ISNUMBER(--T

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

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

1或2或3或4

变成:

#1或#2或#3或#4

我可以用它自己的一个数字来做这件事

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

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

如果您有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执行公式的操作


公式逐字母迭代字符串,并在遇到数字时添加
#

如果您有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

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

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

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

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

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


你用的是什么excel?@ScottCraner:真是疯了。如果你能提供一个基于工作表的解决方案,对于任何版本的Excel,我都会立即投票。@Bathsheba见下文。感谢所有受访者。我修改了另一个,所以现在我可以将“or/1-4”改为“{or#1-#4}”,这也是非常有用的。我认为下一步需要VBA——我希望“or/1-4”变成“1或2或3或4”(任何使用过PubMed数据库的人都会明白为什么),你在用什么excel?@ScottCraner:真是疯了。如果你能提供一个基于工作表的解决方案,对于任何版本的Excel,我都会立即投票。@Bathsheba见下文。感谢所有受访者。我修改了另一个,所以现在我可以将“or/1-4”改为“{or#1-#4}”,这也是非常有用的。我认为下一步需要VBA——我希望“or/1-4”变成“1或2或3或4”(任何使用过PubMed数据库的人都会理解为什么)不错。“很好。”-那么,你说你理解问题的语义,但故意忽略了它们的含义?-是的。-你能举个例子吗?-是的,我能。”@Taosique:不,这里不是这样的。答案包含一个使用替代品的示例。行动可以从那里开始,很好。“很好。”-那么,你说你理解问题的语义,但故意忽略了它们的含义?-是的。-你能举个例子吗?-是的,我能。”@Taosique:不,这里不是这样的。答案包含一个使用替代品的示例。行动可以从那里开始,那太复杂了!不幸的是,它对我不起作用-我正在使用excel 2013。我有名字吗?CONCAT步骤出错。如果@jeeped answer不够,那么您将需要像Taosiquewell这样的vba,这很复杂!不幸的是,它对我不起作用-我正在使用excel 2013。我有名字吗?CONCAT步骤出错。如果@jeeped answer不够,则需要类似Taosique的vba