如图所示,A25单元格中自动填入文字,A25中红色部分是根据A1:A22中内容自动生成。目的是:说清楚A1:A22中包含了哪些单位哪些不同月份的计划!包含几个单位写几个单位,包含几个月份写几个月份,如果没有的就不写!函数可以实现吗?(例子:变采2018-2,代表变速箱2018年2月。依此类推)
做了一个演示
公式如下
=SUBSTITUTE(SUBSTITUTE(PHONETIC(A1:B8),"-","年"),"/","月")效果如下图
需要一个辅助列来完成合并内容,这样可以方便替换出年和月,其他你自己加吧,或者利用替换来解决,如果前面文字内容项目比较多的话,最好用宏来解决比较方便
追问要是我最后还有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
执行前截图
执行后截图,
温馨提示:答案为网友推荐,仅供参考