EXCEL里如何循环引用单元格

例如,A1单元格里有“诺基亚”三个字,B列则是型号:B1是N78,B2是N79,B3是N81,B4是N82等等,B列的单元格个数并不一定,可能是七个也可能是八个九个十个
我需要一个公式达使C1单元格到以下效果:诺基亚N78,诺基亚N79,诺基亚N81,诺基亚N82。。。。。。引用到B列为空为止。请问各位大侠应该怎样写这个公式呢?
如果B列限定最多10个的话,又应该怎样写呢?

注意:不是在C列整用A1单元格加B列,而是在C1这个单元络里引用。引用出来C1单元格的内容达到:
“诺基亚N78,诺基亚N79,诺基亚N81,诺基亚N82。。。。。。”这个效果
回复2楼的,我想要一步达到这个结果
我的思路是,EXCEL先判断B1是否为空,非空的话,C1=A1&B1。
再循环判断B2是否为空,非空的话C1=A1&B1&","&A1&B2。
再循环判断B3是否为空,非空的话C1=A1&B1&","&A1&B2&","&A1&B3
直到读到B列的空单元格为止。

在C1单元格输入以下公式

=MID(SUBSTITUTE(PHONETIC(B1:B10),"N",",诺基亚N"),2,999)

公式表示:将B1:B10单元格的文本通过PHONETIC函数连接起来,其中的“N”用“,诺基亚N”替换,并从第二个字符开始身后取数(去掉第一个逗号)。

 

详见附图

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-11
在文档中添加宏来实现
添加方法:
[工具]->[宏]->[visual Basic编辑器]->选择sheet->选择对象worksheet->选择过程SelectionChange

脚本:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'选择C1单元格时执行以下代码
Set myRange = Range("C1")
'获取手机品牌名
strPhone = Cells(1, 1).Value
'获取手机型号名
strType = Cells(1, 2).Value
If Not Intersect(Target, myRange) Is Nothing Then
'判断手机品牌是否输入
If strPhone = "" Then
MsgBox "输入手机品牌名"
Exit Sub
End If
'判断手机型号是否输入
If strType = "" Then
MsgBox "输入手机型号"
Exit Sub
End If
strResult = strPhone & strType
i = 2
strType = Cells(i, 2).Value
While strType <> ""
'B列限定10个使用下语句
' While strType <> "" And i < 11
strResult = strResult & "," & strPhone & strType
i = i + 1
strType = Cells(i, 2).Value
Wend
'设置"C1"的值
Cells(1, 3) = strResult
End If
End Sub本回答被提问者采纳
第2个回答  2009-11-28
说个笨办法吧:
在了B列最后一个不为空的单元格(假定是B15)后的C15里输入:
=$A$1&B15
在C14里输入:
=if(B14="",C15,$A$1&B14&","&C15)
好了,把这个公式向上复制一直到C1,应该是你要的结果了.
第3个回答  2009-11-28
假设数据在ABC三列,且从第一行开始。
先按照图中错误的效果做(后面都加一个逗号,最后一个不要逗号),然后在D1里输入=C1,D2里输入=D1&C2,然后下拉填充,拉到最后,就是你想要的结果。
第4个回答  2020-04-17