Birden fazla yerel maksima bulma ve veri etiketlerini ilgili tabloya yerleştirme


4

Kullandığım Spektrum 10.000 veri noktası ile tamamlandı

enter image description here

Bir çeşit kimya öğrencisiyim ve sık sık çoklu tepe yüksekliklerini bulmam gereken durumlar var (ekteki resimde görüldüğü gibi). Bu tepe noktalarının her birinin y değerini belirli bir x'te bulmanın ve bu değerleri grafikte ve çeşitli hücrelerde veri etiketleri olarak yazdırmanın bir yolu olacak gibi görünüyor, ancak çözemiyorum. Bunu kullanarak inanıyorum:

=IF(AND(C4>C3,C4>C5),"Local maxima","")

ile birlikte:

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

Bu gibi görünen bir şey üretecek:

enter image description here

Ne yapmak isterim:

  • Asıl değerleri, tercihen x ve y değerlerini söylemek için "max" yazan etiketleri alın, fakat sadece y de çalışır.

  • Yeni bir sütunda göründüğü maksimum değerleri yapmak gerçekten harika olurdu. Netleştirmek için 10000 puanım var ve 40 zirveye ulaşmalıyım. Bu 40 maksimum değerle doldurmak için varsayımsal bir D sütunu almak istiyorum.

  • Son olarak, 10000 değer olduğundan, istediğim tepe yüksekliklerinin altındaki değerleri filtrelemenin bir yolunu bulmalıyım (ilk resimde).

Yukarıdakileri nasıl başarabilirim?

Yanıtlar:


1

Etiketlerin gerçek değerleri göstermesini sağlamak için, "max" metni yerine değerleri gösterecek formülü değiştirmeniz yeterlidir.

Formülünüz şu anda görünüyor

=if(and(c4>0,C5<0),"max","")

Olarak değiştir

=if(and(c4>0,C5<0),A4&","&B4,"")

Sorunuzun diğer iki kurşun noktası açık değildir. Daha ayrıntılı olarak açıklamak için sorunuzu düzenleyin.


Sanırım çözdüm. Ben sensiz yapamazdım. Sadece kullandım: = IF (AND (C4> 0, C5-0, B4> 0.318, A4 2500, A4 3200), A4 & quot;, "& B4" "")
Nicholas Brandon

Bu yardımcı olduysa, lütfen cevabını Tur
teylyn

0

Sorunu VBA'sız ve sadece 3 sütun kullanarak da çözebilirsiniz, bunun gibi:

Orijinal sütunlarınızı varsayarak A & amp; B, bu formülü C sütununda kullan.

=IFERROR(IF(AND(SLOPE(B1:B2,A1:A2)>0,B2>$C$1),B2,NA()),NA()) $ C $ 1 = istediğiniz tepe yükseklikleri.

IFERROR sarıcısı, sütunun tamamını doldurmanıza izin verir ve Excel, ilk çift satırlardaki (örnekte boş olan) hataları grafikte yok sayılacak olan # N / A'ya dönüştürür. Alternatif olarak, ambalajı kapalı bırakabilir ve sütunlarınızı orijinal örneğinizdeki gibi birkaç satır başlatabilirsiniz.

Ardından, iki veri serisiyle bir XY / Dağılım grafiği oluşturun.

  1. İlk veri dizisi A & amp; XY koordinatları için B, çizgilerle biçimlendirilmiş, ancak veri işaretleri içermez.
  2. İkinci veri serisi A ve amp; sütunlarını kullanır. XY koordinatları için C, veri işaretleri ile biçimlendirilmiş, ancak satır yok. Excel, veri işaretleyicilerini çizerken tüm # N / A değerlerinizi yok sayar.
  3. Hem X hem de Y değerlerini içerecek şekilde formatlanmış ikinci serinize veri etiketleri ekleyin. Excel ayrıca, veri işaretleyicilerini çizerken tüm # N / A değerlerinizi yok sayar.

Highlight local max

  1. Ayrıca, bir nokta X = 0, Y = $ C $ 1 (istenen tepe yüksekliği) olan, çizgi veya nokta formatlama olmadan ek bir dizi ekledim. İstenen minimum tepe yüksekliğini göstermek için noktalı kırmızı çizgiyle biçimlendirdiğim pozitif bir yatay hata çubuğu ekledim. İstediğiniz tepe yüksekliği değerini değiştirirseniz, bu aynı zamanda otomatik olarak ayarlanacaktır.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.