求EXCEL高手帮忙。

如上图,如果B列中,某一行的数值为0那么将对应的A列的数字显示在C1中,要求显示在C1中后用一个空格隔开。比如B2=0,那么就将A2写入C1中。将所有B列中为0的数字都显示在C1中。

个人偏向于编程实现。

ALT+F11——F7粘贴如下代码,注意换行。——F5运行。

Sub mysub()

Dim i As Integer

Dim str As String

str = ""

For i = 1 To Range("B65536").End(xlUp).Row

    If Range("B" & i).Value = 0 Then

       str = str & " " & Range("A" & i).Value

    End If

Next i

Range("C1") = str

End Sub


 

写公式好象也可以不过要辅助列。

给你一个例子

追问

只要数字有变化我就想立马更新数据,这个能实现不。能不能保存到C1里啊。怎么关了宏后什么都没了啊

追答

代码更改如下。
数据更改只针对B列。如果不是B列。则不自动更新。
Sub worksheet_change(ByVal target As Range)
If target.Column = 2 Then
Dim i As Integer
Dim str As String
str = ""
For i = 1 To Range("B65536").End(xlUp).Row
If Range("B" & i).Value = 0 Then
str = str & " " & Range("A" & i).Value
End If
Next i
Range("C1") = str
End If
End Sub

追问

不用宏能不能实现啊。用宏有点弄不明白啊

追答

看其他人的答案。。。。不用宏。我用公式写不出来
明明写好的代码。不会用。。。
直接粘贴进去。自动生效。只要你更改B列数据。则会在C1列显示你要的结果。
你自己不会用。可惜了。

追问

你教教我宏怎么实现呗。谢谢了亲。

追答

详细用法给你说了。要求是OFFICE软件,——ALT+F11——F7。粘贴代码。调整格式(换行)
即可

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-20
这个比较难做到,能不能你自己稍微操作一下
在C1填入
=INDEX(A:A,SMALL(IF($B$1:$B$100=0,ROW($B$1:$B$100),4^8),ROW(A1)))
然后不要回车按CTRL+SHIFT+ENTER
然后下拉填充C列,可以得到相应的A列数据
虽然没有用空格格开,但是你直接把这列的数据转置一下,由列变行,然后复制黏贴到记事本里
在复制黏贴回来就是你所要的了
第2个回答  2013-03-20
c列中所有的单元格都写如下公式:
C1中:if(B2=0,C1=A2,“ ”)
以下以此类推。
将所有B列中为0的数字都显示在C1中。 这句话不知道怎么理解,如果B列中有0的数据,C1中已经显示B列中下一行的数据,怎么还能显示0?自相矛盾了。
第3个回答  2013-03-20
在c1中输入公式=if(b1=0,a1,"")

请excel高手指点,谢谢
一、单斜线表头:选择单元格,执行“格式”——单元格——边框,选择斜线样式,确定;然后输入内容,如“科目姓名”,默认是居中的,按空格键,到科目与右边界对齐即可。二、多斜线表头 例如:要制作下图表头,操作如下 方法一:1、用绘图的直线工具将单元格斜分3份。2、点“格式\/单元格\/对齐”,将...

请教高手--Excel
选择Excel选单下的“工具→宏→录制新宏”选项; 宏名为:MyMacro; 快捷键为:Ctrl+Shift+J(只要不和Excel本身的快捷键重名就行); 保存在:个人宏工作簿(可以在所有Excel工作簿中使用)。 (2).用鼠标选择“停止录入”工具栏中的方块,停止录入宏。 (3).选择Excel选单下的“工具→宏→Visual Basic编辑器”选项。

EXCEL表格生成公休日的方法。 求能耐(excel高手帮忙简化)
1. **生成日历日**:选择一个起始日期,使用“填充”功能生成一系列日历日。这样可以自动生成所需的日期范围,无需手动输入。2. **区分工作日与公休日**:在日历日列表中,使用颜色标记或条件格式等功能,将工作日与公休日进行区分。工作日保持原样,公休日可以标为不同的颜色或格式,方便识别。3. ...

Excel求高手指点 表格涵数 另一页显示需要内容
首先在F列F2单元格输入以下公式向下填充 =(B2=$H$1)+F1 然后再自动显示区域输入以下公式填充就行。=IFERROR(INDEX($A:$E,MATCH(ROW(A1),$F:$F,0),MATCH(H$2,$A$1:$E$1,0)),"")

跪求excel公式高手赐教!!急急急!
第一步,确定基准价。在D7输入公式=SUM(IF($D$2:$G$2<=$A$2,$D$2:$G$2,0))\/COUNT(IF($D$2:$G$2<=$A$2,$D$2:$G$2,"")) ctrl+alt+回车 三键结束。第二步、计算得分。在D3输入公式=IF(D2>$A$2,0,IF(D2=$A$2,100,100-ABS(D2-$D$7)\/$D$7*100*IF(D2>...

求excel高手解答一下
1. =a1+7 2. =a1*2

求EXCEL函数高手救命
D9=OFFSET($B$1,MATCH(B9,B$2:B$3,),MATCH(C9,C$1:AG$1))公式向下拉即可

Excel公式求助,请求各路神仙前来指教,感激不尽~
在工号隔壁插入一行空白的然后输入 =XX(2345的行列号)+10000然后回车 之后点击刚刚那一格右下角的小黑点拖到这一行你所需要的最后一格 然后将之前产生的所有数据选中复制到本来在工号的那一行,以保留数据的方式复制 之后将之前插入的一行删除 ...

求助excel高手!
一、效果如下:二、原始代码 Sub 人员分薄()Dim EndRow As Integer Dim UserRow As Integer Dim SheetNameStr As String On Error Resume Next EndRow = Sheets("员工家庭所在地汇总表").Range("A:A").Find("").Row - 1 For i = 1 To EndRow SheetNameStr = Sheets("员工家庭所在地...

求高手解决Excel的问题
=LEFT(A1&"0000",4)这个是在数字后先加一串4个0,然后取新数字的前4位,这样不管你原来是几位,结果都是4位。当然,如果你添加的数字想在左边,也可以,=RIGHT("8888"&A1,4)不过这样得到的结果是字符串,不是数字,如果你要数字,那就再处理一下 =LEFT(A1&"0000",4)*1 在公式后面乘以1...

相似回答
大家正在搜