Nic*_*don 5 vba charts microsoft-excel
我正在使用的频谱包含 10,000 个数据点
我是一名化学学生,经常遇到需要找到多个峰高的情况(如附图所示)。似乎有一种方法可以找到给定 x 处每个峰值的 y 值,并将这些值作为数据标签打印在图表和各个单元格中,但我无法弄清楚。我相信使用:
=IF(AND(C4>C3,C4>C5),"Local maxima","")
随着:
Sub CustomLabels()
Dim i, myCount, pt
ActiveSheet.ChartObjects("myChart").Activate
myCount = ActiveChart.SeriesCollection(1).Points.Count
For i = 1 To myCount
ActiveChart.SeriesCollection(1).Points(i).ApplyDataLabels
ActiveChart.SeriesCollection(1).Points(i).DataLabel.Text = Range("D" & i + 1).Value
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
将产生如下所示的结果:
我想做的事:
使用那些标有“max”的标签来表示实际值,最好是 x 和 y 值,但也可以只使用 y。
使最大值出现在新列中会非常棒。澄清一下,我有 10000 点,最终应该有 40 个峰值。我想要一个假设的 D 列来填充这 40 个最大值。
最后,由于有 10000 个值,我需要找到一种方法来过滤掉低于我所需峰值高度的值(在第一张图片中)。
我怎样才能实现上述目标?
要使标签显示实际值,只需更改公式以显示值而不是文本“max”。
您的公式目前似乎是
=if(and(c4>0,C5<0),"max","")
Run Code Online (Sandbox Code Playgroud)
将其更改为
=if(and(c4>0,C5<0),A4&","&B4,"")
Run Code Online (Sandbox Code Playgroud)
你的问题的另外两个要点不清楚。编辑您的问题以更详细地解释。
| 归档时间: |
|
| 查看次数: |
5839 次 |
| 最近记录: |