24小时热门版块排行榜    

查看: 2027  |  回复: 3

灰豆儿90

金虫 (正式写手)

[求助] 批量提取excel中图表趋势线的公式中的斜率 已有1人参与

表单1里面有20张左右的散点图,每个图都添加了趋势线,显示公式和R2。。。现在需要提取斜率,把所有的斜率排成一列,方便复制进行下一步操作。。。请虫友们帮忙
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 图表方程的斜率提取.xls
  • 2014-12-27 17:56:06, 478 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

deephill

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
我所知道的方法:
第一种直接用excel vba 弄个程序,没有一个小时搞不定;
第二种用origin 中batch processing,可以批量处理,但是没有基础和1个小时也不好做,还需要先弄成耽搁文件。
--------------
若是楼主没有更多的数据需要统一处理的话。直接手动来做,把那个图形框中的全部复制出来,贴到一个地方,批量整理下(以等号和+-号为界分隔),只需要30分钟。
2楼2014-12-28 09:47:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

deephill

铁杆木虫 (职业作家)

【答案】应助回帖

解决办法
将以前的数据复制到一个新的xls中,并保存,贴在shee1t中,这样就去除了以前的chart图。在sheet1中,运行下面的vba 宏 就可以了。主要是调用LinEst函数得出拟合的参数。

Sub 保存结果()
'''''删除空的、不需要计算的列
Dim clu1, i, j As Integer
Dim rowzong As Integer
For j = 1 To 3
For i = 1 To 100 / j
If Cells(1, i).Value = "" Then ''''判断该列的第一个单元格无数据,则删除该列
Cells(1, i).EntireColumn.Delete
End If
Next i
Next j

''''''计算斜率存储到sheet2中
For i = 1 To 20 Step 1 ''''i为列数
''''计算有效行数存储到j中
j =Worksheets("sheet1".Range(Chr(64 + i) & "65535".End(xlUp).Row
If Worksheets("sheet1".Range(Chr(64 + i) & "1" <> "" Then
'''必须有sheet2,让结果保存在sheet2中的B列,A列说明是那一列计算的结果。
      Worksheets("sheet2".Range("A" & Int(i) + 1) = Chr(64 + i) & "列"
      Worksheets("sheet2".Range("B" & Int(i) + 1) = Application.WorksheetFunction.Index
(Application.WorksheetFunction.LinEst(Worksheets("sheet1".Range(Chr(64 + i) & "1:" & Chr(64 + i) & j), ,
True, False), 1)
End If
Next i
End Sub
3楼2014-12-29 19:47:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

deephill

铁杆木虫 (职业作家)

【答案】应助回帖

那个笑脸替换为 “)”--回括号。
4楼2014-12-29 19:49:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 灰豆儿90 的主题更新
信息提示
请填处理意见