excel中如何根据一列数据自动在另一单元格中写入指定文字

如图所示,A25单元格中自动填入文字,A25中红色部分是根据A1:A22中内容自动生成。目的是:说清楚A1:A22中包含了哪些单位哪些不同月份的计划!包含几个单位写几个单... 如图所示,A25单元格中自动填入文字,A25中红色部分是根据A1:A22中内容自动生成。目的是:说清楚A1:A22中包含了哪些单位哪些不同月份的计划!包含几个单位写几个单位,包含几个月份写几个月份,如果没有的就不写!函数可以实现吗?(例子:变采2018-2,代表变速箱2018年2月。依此类推) 展开
 我来答
fanbing530
2018-03-27 · TA获得超过250个赞
知道小有建树答主
回答量:260
采纳率:90%
帮助的人:124万
展开全部

做了一个演示

公式如下

=SUBSTITUTE(SUBSTITUTE(PHONETIC(A1:B8),"-","年"),"/","月")

效果如下图

需要一个辅助列来完成合并内容,这样可以方便替换出年和月,其他你自己加吧,或者利用替换来解决,如果前面文字内容项目比较多的话,最好用宏来解决比较方便

追问

要是我最后还有1项序列号的话,怎么实现,因为这样就有两个“-”了。另外我的“变采”要替换成“变速箱”,“塑采”要替换成“塑料公司”,还有就是顿号的问题,要是只有一项的话,后面就应该没有顿号,要是不是只有一项的话,只有最后一项后面是没有顿号的!这个函数可以实现吗?要是不行的话,宏是怎么实现的?

追答

宏代码如下

Sub 宏1()
'设定保存数据的工作表名称,本例为Sheet2
vSheetName = "Sheet2"
Sheets(vSheetName).Select
'获得最大行数
vMAX = ActiveSheet.UsedRange.Rows.Count
'拼接字符串,并将每个单元格最后两个字符串去除
For i = 1 To vMAX
    If Range("A" & i) <> "" Then
        If vStr = "" Then
            vStr = Left(Range("A" & i), Len(Range("A" & i)) - 2)
        Else
            vStr = vStr & "、" & Left(Range("A" & i), Len(Range("A" & i)) - 2)
        End If
    End If
Next i

'字符串替换,有更多的替换自己加代码
vStr = Replace(vStr, "变采", "变速箱")
vStr = Replace(vStr, "塑采", "塑料公司")

'设置单元格格式自动换行
Range("A" & vMAX + 2).wrapText = True
'最后输出到表格里
Range("A" & vMAX + 2) = "以上为" & vStr & "计划"
End Sub

执行前截图

执行后截图,

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式