
选中数据表格中任意一个有数据的单元格,把软件的注意力引过来
→插入→数据透视表→确定(软件会默认框选整个表格的数据,默认数据透视表在新的工作表中显示)
序号列是文本格式,且不重复,可以用来计数(有多少个序号,就有多少行数据),现在统计下字段1中各种数值出现的情况:
用鼠标将“序号”拖拽至右下角计数框中
→将“字段1”拖拽至“行标签”中
→结果显示:字段1取值有3、5、6、7四种情况,出现频次分别为9、4、6、11,共30个取值:
再来看看字段2与字段1取值情况:
将字段2拖拽至“列标签”,结果显示:字段2取值仅1、2两种情况,且字段1取值为3时,字段2有7个数据取值为2,2个取值为1;字段1取值为5时,字段2只有取值为2一种情况,共4个……:
返回数据表,更新部分数据,字段2部分取值改为3,
回到透视表,发现统计结果没有变化,这是不能用的。如何更新?
鼠标右击统计结果表格→刷新 结果变化
你的意思是不是这样
1 A
2 TOP
3 B
4 TOP
5 C
6 TOP
以上有六行,你要在A、B、C前面都加上depth是不是,如果A、B、C都一样的话用查找/替换就可以了,如果不一样只能用宏来实现,如你现在数据是表1(Sheet1)且TOP所在为A列的话,按ALT+F11调出VBA,双击左边的Sheet1调出表1代码窗口,将下面代码复制到右边Sheet1窗口中。
Sub 填充()
fr = [A65536].End(xlUp).Row
For i = 2 To fr
If Cells(i, 1).Value = "TOP" Then '这行和下行中像Cells(i, 1)的1代表A列,B列改为2,以此类推,条件为找到等于TOP的值
Cells(i - 1, 1).Value = "depth" & Cells(i - 1, 1).Value '改为depth加原来的值,按自己要求改,上一行CELL后面1有改的话这行也要跟着改
End If
Next i
End Sub
然后在表1中按ALT+F8,选“填充”后执行就可以了。
要插入depth也可以,按照我贴出图片的步骤 *** 作,在任何工作表(同一工作簿)都可以.代码如下,连代码中的解释都粘贴过去一样可以运行,没影响
Sub 填充()
With ActiveSheet '关联当前工作表
fr = .[A65536].End(xlUp).Row '定义最后行
For i = fr To 2 Step -1 '从最后行到第二行中逐行查找
If .Range("A" & i).Value = "TOP" Then '当在A列找到TOP时,此行A和TOP可以按你的要求更改,如果这行A改为B(即TOP在B列)的话后面的A也要改为B
.Rows(i & ":" & i).Insert Shift:=xlDown '在找到的行前面插入一个新行
.Range("A" & i).Value = "depth" '在新行的第一个单元格A单元格写入depth,depth也可以按你自己要求改
End If
Next i '查找下一个
End With
End Sub
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)