Excel 如何计算图形中的峰值数-图形分析-
我有一条包含特定峰值的曲线,我想知道如何得到这些峰值的数量 样本数据:Excel 如何计算图形中的峰值数-图形分析-,excel,excel-formula,vba,Excel,Excel Formula,Vba,我有一条包含特定峰值的曲线,我想知道如何得到这些峰值的数量 样本数据: 0.10 76792 0.15 35578 0.20 44675 0.25 52723 0.30 27099 0.35 113931 0.40 111043 0.45 34312 0.50 101947 0.55 100824 0.60 20546 0.65 114430 0.70 113764 0.75 15713 0.80 8313
0.10 76792
0.15 35578
0.20 44675
0.25 52723
0.30 27099
0.35 113931
0.40 111043
0.45 34312
0.50 101947
0.55 100824
0.60 20546
0.65 114430
0.70 113764
0.75 15713
0.80 83133
0.85 79754
0.90 17420
0.95 121094
1.00 117346
1.05 22841
1.10 95095
1.15 94999
1.20 18986
1.25 111226
1.30 106640
1.35 34781
1.40 66356
1.45 68706
1.50 21247
1.55 117604
1.60 114268
1.65 26292
1.70 88486
1.75 89841
1.80 49863
1.85 111938
第一列是X值,第二列是y值
我想写一个宏或公式,告诉我这个图中有多少个峰值
注意:这个图实际上是从matlab绘制和导出的,所以如果有一种方法我可以告诉我的代码从matlab为我做这件事,那也太好了 如果您的数据位于
A1:B36
中,则此公式
=SUMPRODUCT(--(B2:B35>B1:B34),--(B2:B35>B3:B36))
返回11个峰值 它检查
高于B2
和B3,如果是,则将其视为峰值B1
- 然后,如果
高于B3
和B2
,则将其计为峰值,依此类推B4
Sub GetMax()
Dim chr As ChartObject
Dim chrSeries As Series
Dim lngrow As Long
On Error Resume Next
Set chr = ActiveSheet.ChartObjects(1)
Set chrSeries = chr.Chart.SeriesCollection(1)
On Error GoTo 0
If chrSeries Is Nothing Then Exit Sub
For lngrow = 2 To UBound(chrSeries.Values) - 1
If chrSeries.Values(lngrow) > chrSeries.Values(lngrow - 1) Then
If chrSeries.Values(lngrow) > chrSeries.Values(lngrow + 1) Then
chrSeries.Points(lngrow).ApplyDataLabels
With chrSeries.Points(lngrow).DataLabel
.Position = xlLabelPositionCenter
.Border.Color = 1
End With
End If
End If
Next
End Sub
有相当多的matlab峰值检测器,看到了令人惊讶的答案,我真的很感激,但有没有可能让图形也像您的示例中那样指向峰值?我还有一个问题围绕着同一主题:)!,这个解释完全有道理,但是当我尝试Excel(2010)抱怨公式时。(公式错误)-有线索吗?