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

如图所示,A25单元格中自动填入文字,A25中红色部分是根据A1:A22中内容自动生成。目的是:说清楚A1:A22中包含了哪些单位哪些不同月份的计划!包含几个单位写几个单位,包含几个月份写几个月份,如果没有的就不写!函数可以实现吗?(例子:变采2018-2,代表变速箱2018年2月。依此类推)

做了一个演示

公式如下

=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

执行前截图

执行后截图,

温馨提示:答案为网友推荐,仅供参考
相似回答