MS EXCEL'de sabit diziler. Excel'de Sabit Diziler

Dizi formülü girerseniz, sayfa üzerinde genellikle bir hücre aralığı kullanırsınız, ancak buna ihtiyacınız yoktur. Ayrıca kullanabilirsiniz dizi sabitleri, sadece aşağıdaki çubukları formül çubuğuna yazın: (). Ardından, yeniden kullanımını kolaylaştırmak için bir sabit isimlendirebilirsiniz.

Sabitler, hem dizi formüllerinde hem de bunlardan ayrı olarak kullanılabilir.

Bir sütuna değer girmek için sabitleri kullanma

Bir sütuna, örneğin, C sütununun üç hücresine değer girmek için, aşağıdakileri yapın.

Bir dizeye değer girmek için bir sabit kullanma

Değerleri tek bir satıra hızlıca girmek için, örneğin F1, G1 ve H1 hücrelerinde, aşağıdakileri yapın.

Birden çok sütun ve satırdaki değerleri girmek için sabitleri kullanma

Formülde bir sabit kullanma

Şimdi zaten dizi sabitlerine aşina olduğunuza göre, pratik bir örnek düşünün.

    Aşağıdaki formülü yazın veya kopyalayıp herhangi bir boş hücreye yapıştırın ve sonra da CTRL + ÜST KRKT + ENTER tuşlarına basın:

    = TOPLAM (A1: E1 * (1,2,3,4,5))

    A3 hücresinde bir değer görünüyor 85 .

    Ne oldu A1 hücresindeki değeri 1, B2 hücresindeki değeri 2 vb. İle çarptınız ve ardından SUMM işlevini kullanarak bu sonuçların eklenmesini sağladınız. Aynı formülü forma girebilirsiniz = SUM (A1 * 1, B1 * 2, C1 * 3, D1 * 4, E1 * 5).

İsterseniz, her iki değer kümesini dizi sabitleri biçiminde girebilirsiniz:

= TOPLAM ((3,4,5,6,7) * (1,2,3,4,5))

Bunu yapmak için formülü kopyalayın, boş hücreyi seçin, formülü formül çubuğuna yapıştırın ve sonra CTRL + ÜST KRKT + ENTER tuşlarına basın. Aynı sonucu alacaksınız.

Açıklamalar:  Sabitler işe yaramazsa

Bu kitaptan bir bölüm: Michael Girvin. Ctrl + ÜstKrkt + Enter. Excel'de master dizisi formülleri.

Bu kitapta daha önce, sürekli olarak sabit dizileriyle karşılaştınız. Aslında, F9 tuşunu kullanarak bir formülün öğelerini her değerlendirdiğinizde, bir dizi sabit örneği görmüşsünüzdür. Örneğin, yaratılan dizinin ilk formülünde (Şekil 7.1'de tekrar gösterilmiştir), D2: D5-C2: C5'i seçebilir ve F9'a basabilirsiniz, sonuçtaki diziyi (3; –8; 7; 6) görebilirsiniz. Ancak, diziyi değerlendirdikten sonra, formülün içinde bir zor kod değil bir bağlantı bırakmak için hemen Ctrl + Z tuşlarına bastınız. Ctrl + Z kullanmadıysanız, sayfadaki kaynak veriler değiştiğinde değişmeyecek bir sabitler dizisi oluşturursunuz. Bu bölümde, bir sabit dizinin kullanımının size avantajlar sağladığı durumlar hakkında bilgi edineceksiniz.

Şek. 7.1. Diziyi vurgulayın (solda), F9 tuşuna basın (sağda) ve bir sabitler dizisi alın

Notu formatta veya formattaki örnekleri indirin

Bir sabitler dizisi oluşturmak için kullanılan sözdizimini ve Excel'de karşılaşabileceğiniz üç sabit dizi dizisini gösteren örnekleri düşünün.

Dikey sabitler dizisi(Şekil 7.2). A6 hücresinde, = A2: A4 dizisine bir bağlantı oluşturun ve F9 tuşuna basın. Kıvrımlı parantez içinde yer alan bir dizi element göreceksiniz; metin her zaman tırnak içinde görüntülenir; Kolon, elemanların birbirinin altındaki bir sütuna yerleştirildiğini belirten bir ayırıcıdır.

Şek. 7.2. Dikey hücre aralığı: Bağlantıyı seçin (solda) ve F9 tuşuna basın (sağda)

Yatay sabitler dizisi  (Şekil 7.3). A6 hücresinde, = A2: B2 dizisine bir bağlantı oluşturun ve F9 tuşuna basın. Kıvrımlı parantez içinde yer alan bir dizi element göreceksiniz; metin her zaman tırnak içinde görüntülenir; sayılar sadece sayıları gösterir; noktalı virgül, - ayırıcı, öğelerin aynı satırda bitişik sütunlarda bulunduğunu belirtir.

Şek. 7.3. Yatay hücre aralığı: Bağlantıyı seçin (solda) ve F9 tuşuna basın (sağda)

Dikdörtgen sabitler dizisi  (şek. 7.4). A6 hücresinde, = A2: B4 dizisine bir bağlantı oluşturun ve F9 tuşuna basın. Kıvrımlı parantez içinde yer alan bir dizi element göreceksiniz; metin her zaman tırnak içinde görüntülenir; sayılar sadece sayıları gösterir; İki sınırlayıcı kullanılır: aynı satırdaki bir sonraki sütuna gitmek için bir noktalı virgül ve yeni satırın ilk sütununa gitmek için bir sütun.

Şek. 7.4. Dikdörtgen hücre aralığı: bağlantıyı seçin (solda) ve F9 tuşuna basın (sağda)

Bir dizi sabitin yararlı olacağı durumlar olup olmadığını merak edebilirsiniz. Excel altın kuralına aykırı değil mi: kaynak veriler değişebilirse, bunları bir sayfaya yerleştirin ve formülün içinde onlara bakın; kaynak veriler değişmezse, bunları formülde kodlayın. Sabit dizinin avantajı, formülünün Ctrl + Shift + Enter tuşlarına basmasını gerektirmemesidir. Bu nedenle, kaynak veriler değişmezse, bir dizi sabit kullanın.

Bir golf oyunu örneği düşünün (Şekil 7.5). Amaç, en iyi üç (en az) sonucun toplamını bulmak, 4. ve daha sonraki sonuçları hesaba katmamak, eğer üçüncüe eşit ise (örneğimizde bunun sadece 70 sayısında olduğu açıktır). Sorunu çözmek için, LEASTING işlevi, k argümanı gerekli değerleri seçmenize izin verecek olan için mükemmeldir: k = 1, minimum değeri verir, k = 2 - saniye, vb. Şekilde görüldüğü gibi. 7.5, k = 1, 2, 3 olan en küçük olanın toplamı doğru cevabı verir. Belki de sadece 10 minimum değer seçmeniz gerekiyorsa, yazması zaman alacak dezavantajı olan mükemmel bir formül.

Şek. 7.5. tartışma k  LEAST işlevi, en küçük değeri sağlar.

Daha kompakt bir formül oluşturmak için, fonksiyon bağımsız değişkenine bir dizi yerleştirebilirsiniz (Şekil 7.6). Ve burada sabitleri (1,2,3) dizisini kullanabilirsiniz. Zor kodu kullanabilirsiniz, çünkü seçilecek değerlerin sayısı değişmeyecektir. K argümanı üç değere sahip olduğundan, LEASTEST işlevi de eklenecek olan üç değeri döndürür. Bunu doğrulamak için, SUM fonksiyonunun 1 numaralı argümanını seçin ve F9 tuşuna basın (Şek. 7.7). En küçük üçüncü değerin iki eşit sayıya 70 sahip olmasına rağmen, LEAST (B3: B8; (1; 2; 3)) işlevinin yalnızca üç sayı döndürdüğü görülmektedir.

Not: Yatay (1; 2; 3) veya dikey (1: 2: 3) bir dizi sabit belirlemeniz önemli değildir.

Formül girmek için Ctrl + Shift + Enter'a gerek yoktu. Bununla birlikte, k argümanındaki bir sabitler dizisi yerine, aralıktaki referansı kullanın (Şekil 7.8), formüle girmek için Ctrl + Shift + Enter tuşlarına basmanız gerekir (aksi takdirde #VALUE! Hatası alırsınız). Aşağıdaki formülü kullanırsanız Ctrl + ÜstKrkt + Enter tuşlarından kaçınılabileceğini unutmayın: = SUMPRODUCT (LEAST (B3: B8; D3: D5))

Not: LEAST'ın HELP işlevi, k argümanının bir sabitler dizisi ile temsil edilebildiğinden bahsetmez. Bu, kötü belgelenen Excel’in dizi formülleriyle çalışma yeteneğinin ne kadar düşük olduğunun bir başka göstergesidir. Bunu MrExcel forumunda ve uzun yıllar süren araştırma ve geliştirme çalışmalarını deneme yanılma yoluyla öğrendim.

Tüm bölünmüş (çizilmiş) sonuçları toplamanız gerekirse, normal SUMMESL işlevini kullanabilirsiniz, dizi formülünü kullanamazsınız (Şekil 7.9).

Şek. 7.9. Formül, eşit de dahil olmak üzere üç asgari puanı özetler

Aşağıdaki örnek, BIGGEST işlevinin kullanımını göstermektedir (Şekil 7.10). Amaç, her katılımcı için en uzun üç bumerang uçuşunu özetlemektir.

Peki ya formülün değişken bir maksimum veya minimum değer sayısını toplamasını istiyorsanız? Şek. 7.11, en büyük üç değeri özetleyen iki formülü gösterir. Formül, bölünmüş üçüncü değerleri hariç tutar, formül bunları içerir. Bu formüllerin daha önce düşünülenlerden farkı, maksimum değer sayısının formüle katı bir şekilde dikilmemesi, ancak D3 ve D6 hücrelerinde bulunan değerlerle belirlenmesidir. D3 ve D6 hücrelerinde sayılar değiştiğinde, E3 ve E6 hücrelerinde miktar değişecektir. Şek. 7.12, iki maksimum değer için toplamları gösterir.

Şek. 7.12. Formüller 1 ve 2, iki maksimum değer için aynı sonuçları verir, çünkü ikinci değerler arasında aynı değildir

Formülün anlaşılması kolaydır, ancak formül daha önce hiç karşılaşmadığınız öğeleri içerir. STRING ve DFSR işlevlerini kullanarak, ardışık sayıların dinamik değişken uzunluklu bir dizisini oluşturabilirsiniz. DFSED işleviyle formülü girmeye başlayın (Şekil 7.13). FBSSL, bir metin dizesi tarafından verilen bir referansı döndürecek şekilde programlanmıştır. Bizim durumumuzda, argüman elemanı ssylka_na_yacheyku  "1:" & D3, 1: 3 satıra bir bağlantıdır. Bunu doğrulamak için bu öğeyi seçin ve F9 tuşuna basın.

Şek. 7.13. Birleştirme "1:" ve D3 (solda), "1: 3" (sağda) satırlarına bağlantı verir

Formül = FLAX'ın ("1:" & D3) ne döndüğünü değerlendirmek istiyorsanız, tamamen seçin ve F9 tuşuna basın (şek. 7.14), sonra hatayı alırsınız "Formül çok uzun. Uzunluğu 8192 karakteri geçmemelidir. ”

Şek. 7.14. = FALSE ("1:" & D3) formülü değerlendirilirken bir hata döndürülür

Hata, 1: 3 numaralı satırlara olan bağlantının 1 - 3 arasındaki tüm hücreleri içermesi nedeniyle ortaya çıkar. Excel sayfasında (2007 sürümünden) 16.384 sütun vardır, yani. üç sıra 49,152 hücre içerir. DFSR fonksiyonunun kendisi bir hata içermez, bu nedenle LINE fonksiyonuna bir argüman olarak yerleştirirseniz, istenen sonucu elde edersiniz (Şekil 7.15). STRING işlevinin argümanının bir değer beklediğini unutmayın. 49,152 hücre referansını "kaydırıyorsunuz". Doğru, bu bağlantıların tümü satır 1, 2 ve 3'ü gösterir. Dolayısıyla, LINE işlevi bir dizi döndürür (1: 2: 3) (tüm LINE işlevini vurgulayıp F9 tuşuna basarak bunu yaptığınızdan emin olun). Lütfen dizgiler hakkında konuştuğumuzdan, dizi sözdiziminde ayırıcı olarak bir kolon olduğunu unutmayın.

Şek. 7.15. String işlevi, link argümanının satır numarasını döndürür; DFSB, 1, 2 ve 3 numaralı satırlarla ilgili hücreleri döndürdüğünden, STRING işlevi bir dizi döndürür (1: 2: 3)

Böylece, STRING inşaatının yardımıyla (DSSE (...)) bir argüman oluşturmayı başardınız. k  fonksiyonlar en BÜYÜK'tür (fig. 7.16). Formülün bu elemanı dinamiktir. D3 hücresine 2 değerini girerse, k  döndürür (1; 2) ve eğer 5 ise, - - (1; 2; 3; 4; 5).

Şek. 7.16. Bir argüman k  fonksiyonlar, BIGGEST STRING (DFSR (...)) tarafından yaratılan bir dizi alır.

BIGGEST fonksiyonunu bir argüman olarak yerleştirerek formüle girmeyi tamamlayabilirsiniz. dizi1  SUMPRODUCT fonksiyonu. SUMPRODUCT ürününü SUM'dan daha çok seviyorum, çünkü ilki Ctrl + Shift + Enter tuşlarına basmak zorunda değil, ikincisi de gerekiyor.

Şek. 7.17. BIGGEST işlevini argüman olarak yerleştirerek formülü tamamlayın dizi1  SUMPRODUCT işlevleri

“Ardışık sayıda değişken uzunluklu bir dizi” olarak adlandırılabilecek bir numarayı henüz çözdük (Şekil 7.18).

Bir sonraki dizi formülüne geçmeden önce, size Excel aracını tanıtmak istiyorum - tablo  (şek. 7.19). Bir tablo oluşturmak için A1: B8 aralığındaki herhangi bir hücrede durun ve menüden geçin: anastilleriTablo olarak biçimlendir  (veya Ctrl + T; T - English tuşlarına basın). Menüde bir sonraki tasarımcı  bölge Tablo Stili Seçenekleri  kutuyu işaretle Satır toplamları. Sütuna filtre uygula Satış hacmi: Sayısal filtrelerİlk 10, set En büyük 3 liste öğesi. Maalesef, filtrelenmiş liste kopyaları içerecektir, çünkü üçüncü en yüksek değer iki satırla gösterilmektedir.

Şek. 7.19. Araç kullanımı tablo  en fazla üç değer seçmek için

Bir dizi sabiti kullanmanın başka bir örneğini düşünün. Malların maliyetini hesaplamak için indirimleri dikkate alarak bir formül elde ettik. Bu durumda, her biri kendi hücresine dört indirim değeri yerleştirildi. Tek bir hücreye dört indirim değeri uygulandığında sorunu çözmeye çalışalım (Şekil 7.20).

Bir hücrede sürekli olarak yapmanız gereken:

Bir metin dizisinden dört sayıyı aynı anda çıkarmak için, bağımsız değişkende bir dizi sabiti kullanabilirsiniz. başlangıç_sayısı  PSTR fonksiyonları (Şekil 7.21). PSTR işlevi belirtilen satırdan başlayarak bir metin satırından belirtilen sayıda karakteri döndürür. Genellikle tartışma başlangıç_sayısı  bir öğe içeriyor. Örneğin, = PSTR (C3; 4; 2) formülünü girdiyseniz, işlev C3 hücresinin dördüncü düzeyinden başlayarak iki karakter döndürür.

Şek. 7.21. Argümandaki sabitler dizisi başlangıç_sayısı  PSTR fonksiyonları

Ancak, örneğimizde, argümana dört değer girin başlangıç_sayısı. Bu nedenle, PSTR işlevi dört sonuç verecektir. Bunu, tüm PSTR işlevini vurgulayarak ve F9 tuşuna basarak doğrulayın (Şekil 7.22). PSTR işlevinin metin öğeleri döndürdüğünü unutmayın. Bu bizi engellemeyecektir, çünkü bir sonraki adımda bu dizi ile matematiksel işlemler yapacağız, bu da otomatik olarak metnin sayılara dönüştürülmesine yol açacaktır.

Bir sonraki adımda, diziyi 100'e bölün ve sonucu üniteden çıkarın (Şek. 7.23). Bölme ilk önce gerçekleştirileceği için, ek parantez gerekmez. Elde edilen formülü seçip F9 tuşuna basarak değerlendirin.

PRODUCER işlevini kullanarak önceki adımda elde edilen dizinin öğelerini çarparak formüle girmeyi bitirin; daha sonra fiyat listesindeki fiyatla çarpın ve sonucu iki ondalık basamağa yuvarlayın (Şek. 7.24). PSTR işlevinin argümanında bir sabitler dizisi kullandığınız için, bir formül girmek için Ctrl + Shift + Enter gerekmez.

Yer kazanmak için VLR fonksiyonunda bir dizi sabit kullanın.Şek. Şekil 25, VLR fonksiyonunun tipik bir uygulamasını gösterir (F2: G5 tablosundaki ilk sütun sıralanır, böylece VLR sadece yaklaşık bir eşleşme arar). Arama tablosundaki verilerin (F2: G5) değişmeyeceğini varsayarsanız ve tablonun sayfada boş yer tutması sizin için uygun değilse, tabloyu formüle zorlayabilirsiniz. Bir CDF formülündeki bir sabit dizinin sabit kodlanmasındaki problem göreceli olarak büyük miktarda girdidir (dizi, parantez içine alınmalı, metin tırnak içine alınmalı ve “ayırıcıların bulutu” girilmelidir). Küçük bir numara kullanabilirsiniz: Zaten bir masanız varsa, normal bir CDF oluşturun ve argümanı seçin tablo ve F9 tuşuna basın. Bir referansı bir aralığa bir sabitler dizisine dönüştürürsünüz (Şekil 7.26). Daha sonra QFD formülünü sütunundan kopyalayıp arama tablosunu silebilirsiniz.

Şek. 7.25. Arama tablosundaki veriler değişebilirse, hücre referanslarına sahip normal bir CDF mükemmel bir seçimdir.

Şek. 7.26. Argümanı vurgula tablo  ve F9 tuşuna basın; bir aralık başvurusunu bir sabitler dizisine dönüştürürseniz

Bir sayfada yer kazanmak için başka bir olasılık, sabitler dizisine bir isim atamak ve sonra bu ismi formüllerde kullanmaktır. Bir dizi sabiti adlandırmak için sekmeye gidin formül  ve tıklayın İsim yöneticisi  (veya Ctrl + F3 tuşlarına basın), ardından Tamam oluşturmak. Açılan iletişim kutusunda İsim oluşturma  adı, adın kapsamını ve aralığını ayarlayın (bizim durumumuzda bu bir hücre başvurusu değil, bir sabitler dizisidir). Klavyeden bir dizi sabit yazmaktan kaçınmak için yukarıda açıklanan numarayı kullanabilirsiniz (Şek. 7.27).

Bu adı CDF işlevinin argümanı olarak kullanabilirsiniz (Şekil 7.28). Lütfen = CDF'nin (A2; Emtia Fiyatı; 2) bir dizi formülü olmadığını unutmayın.

Şek. 7.28. İlk isim TovarTsena  bir dizi sabit içerir

Bağımsız değişken olarak iki öğe (bir dizi sabit ve belirli bir ad) kullandınız tablo  CDF'nin işlevleri. Peki ya diğer CDP argümanları? Bir dizi sabit ve / veya dizi işlemi içerebilirler mi? Gördüğünüz gibi, tartışma lookup_value  dizileri işleyemez. Ve argüman sütun_sayısı? Bir diziyi kaldırabilir mi?

Şek. 7.29 (A1: H4 aralığı), ilk sütundaki malların adlarını (alfabetik olarak sıralanır) ve maliyet bileşenlerini 2-8 arasındaki sütunda içeren bir arama tablosunu gösterir. Formülün amacı, maliyetleri 2, 4, 5, 7 ve 8 sütunlarına eklemektir. Değişkenleri bir dizi olarak argüman olarak kullanabilirsiniz. sütun_sayısı  VPR, fonksiyonun çıkışında beş maliyet değeri elde etmek için çalışır. Bunu, CDF işlevini vurgulayıp F9 tuşuna basarsanız görebilirsiniz (şek. 7.30).

Şek. 7.29. Argümanı yaz sütun_sayısı  cfc fonksiyonları sütun sabitleri dizisi

Şek. 7.30. Argümandan beri sütun_sayısıbeş element içerir, VLR fonksiyonu beş değer döndürür

Basitçe Enter tuşuna basarak formül = SUM (BFR (A7; A2: H4; (2; 4; 5; 7; 8))) girerseniz, yanlış cevap alırsınız (Şekil 7.31). SUM işlevinin, CDF işlevinin döndürdüğü dizinin yalnızca ilk öğesini (1.35; 2.15; 3; 2; 4) işlediği görülebilir. Doğru sonucu almak için, hücreye Ctrl + Shift + Enter tuşlarını kullanarak formülü girin (Şek. 7.32). Üç tuşa basarak tasarruf etmek istiyorsanız, CDF'i TOPLAM ÜRÜNÜN içine yerleştirin (Şek. 7.33).

Şek. 7.32. Argümanın içerip içermediğine bakılmaksızın sütun_sayısıvPR, bir sabitler dizisi veya bir aralık için bir referans işlevi görür, formül girmek için Ctrl + Shift + Enter tuşlarına basılması gerekir

Dolayısıyla, bir sabit dizisi içerebilen bazı fonksiyon argümanlarının Ctrl + Shift + Enter (örneğin, sıra  en son ve en büyük metin  DLSTR’de mantıksal_değer  VEYA'da) ve bazılarını gerektirir (örneğin, sütun_sayısı  CDF'de).

Şimdiye kadar bu bölümde, sabit argümanları fonksiyon argümanları olarak kullandınız. Sabit diziler matematiksel işlemlerde ve dizi karşılaştırma işlemlerinde de kullanılabilir. Aynı zamanda, yalnızca bir dizi sabit kullanılırsa, formül Ctrl + Shift + Enter tuşlarına basılmasını gerektirmez (fig. 7.34–7.36). Bir dizi, aynı zamanda bir aralığa referanslar şeklinde de kullanılıyorsa, bir formül girmek için Ctrl + Shift + Enter tuşlarına basılması gerekir (Şek. 7.37).

Şek. 7.34. Dizi formülü (C2 hücresinde) şunu sorar: “B2 hücresinin içeriği şu değerlerden birine eşit mi: V.P., Başkan veya Yönetici?”; Karşılaştırma işlemi, argümanda bir dizi sabiti olan bir işlemi içerir. logicheskoe_znachenie1  VEYA işlev görür ve Ctrl + Shift + Enter tuşlarına basılmasını gerektirmez

Şek. 7.35. Dizi formülü, bireysel indirimlerin değerlerine bağlı olarak bir fiyat katsayısı hesaplar; bağımsız değişkende bir dizi sabiti kullanarak bir matematiksel çarpma işlemi gerçekleştirdi sayı1Ctrl + Shift + Enter tuşlarına basılmasını gerektirmeyen

Şek. 7.36. Formül iki sabit diziyi çoğaltır ve daha sonra çalışmanın sonuçlarını özetler (böyle bir formül kullanacağınızı sanmıyorum, ancak bir sabit dizinin çalışmasını göstermek için dahil ettim); Sabit dizilerle matematik işlemi argümana yerleştirilir sayı1  TOPLA çalışır ve Ctrl + Shift + Enter tuşlarına basılmasını gerektirmez

Şek. 7.37. Formül, referanslar ve sabitler dizisini çoğaltır ve ardından çalışmanın sonuçlarını toplar (SUMPRODUCT işlevini kullanmak daha iyidir; sabit dizilerin çalışmasını göstermek için bu formülü dahil ettim); Bir matematiksel işlem yalnızca bir sabitler dizisi değil, aynı zamanda bir hücre aralığına da referans içerir ve Ctrl + Shift + Enter tuşlarına basılmasını gerektirir.

Bölüm özeti

  • Sabit diziler hem sıradan hem de dizi formüllerinde kullanılabilir
  • Sabit dizilerin sözdizimi: dizinin başında ve sonunda yer alan parantezler; noktalı virgül, bir dize içindeki elemanları, iki nokta üst üste - iki nokta; metin öğeleri çift tırnak içine alınır ve sayılar, mantıksal değerler ve hata değerleri - tırnak işaretleri olmadan
  • Üç çeşit sabit dizi kullanılır: dikey, yatay, dikdörtgen
  • Sabitler dizisi 8192'den fazla karakter içeremez.
  • Bir dizi formülü girmek için:
    • Sadece bir dizi sabit kullanılırsa, Ctrl + Shift + Enter tuşlarına gerek yoktur.
    • Bir sabitler dizisi yerleştirirken işlevlerin bazı argümanları Ctrl + Shift + Enter (örneğin, sıra  en son ve en büyük metin  DLSTR’de mantıksal_değer  ameliyathanede, başlangıç_sayısı  PSTR’de sayı1  ÜRETİMDE ve TOPLAM
    • Bazı işlev argümanları, bir sabit dizisi içeriyorsa Ctrl + Shift + Enter tuşlarına basılmasını gerektirir (örneğin, argüman sütun_sayısı  CDF’de)
  • Excel'in dizi formülleri için altın kuralı aşağıdakilerle desteklenebilir:
    • Veriler değişmezse ve sayfada yer kazanıyorsanız, sabit bir dizi kullanın
    • Bir dizi sabiti adlandırın ve ismini formüllerde kullanın.

Konu 4. Dizi Formülleri

Diziler aynı tipte işlem gruplarının uygun bir yoludur. Kütleler, hesaplamaların sonucunda tek bir değer veya yeni değerler dizisi döndüren bazı işlevlerde veya formüllerde argüman olabilir. Sonuç dizisi döndüren formüllere çağrılır tablo formülleri  veya dizi formülleri. Genel formülü kullanan bir hücre bloğu denir dizi aralığı. Bir dizi, herhangi bir verinin düzenlenmiş bir listesidir.

Excel formülleri sabit dizileri kullanabilir. Bir sabitler dizisi parantez içine alınmış ve noktalı virgül ile ayrılmış bir değerler kümesi olarak oluşturulmuştur. Diziler farklı boyutlarda olabilir. Bir boyutlu ve iki boyutlu diziler vardır. Örneğin, tek boyutlu bir dizi, 1 × 3 boyutunda, bu satırda bir satır ve üç öğeden oluşan ve öğeleri içeren:

olarak kaydedildi {5;7;9} , Yani parantez içine alınmış ve noktalı virgülle ayrılmış bir dizi değer kümesidir. Bu yatay, tek boyutlu bir dizidir (satır vektörü). Tek boyutlu bir diziyi dikey olarak yazmak için (sütun vektörü):

yazmalı {5:7:9} , Yani dizi değerleri kümesini parantez içine alın ve bunları iki nokta üst üste koyun.

İki boyutlu bir dizi birkaç satır ve sütundan oluşur. Örneğin, öğeleri içeren 2 × 3 (iki satır ve üç sütundan oluşan) ölçen iki boyutlu bir dizi:

olarak kaydedildi {11;13;15:17;19;21} , Yani Kıvrımlı parantez içine alınmış, bir satırda yer alan değerler birbirinden noktalı virgülle ayrılmış ve bir iki nokta üst üste dizilmiş bir dizi değer kümesidir.

Dizi sabitleri sayısal, metin veya mantıksal değerler içerebilir ve metin sabitleri tırnak işaretleri içine alınmalıdır. Bir dizide, örneğin bir dizi gibi farklı türlerin değerlerini girebilirsiniz:

gibi görünüyor ("A"; "b"; "c": 1; 2; 3).

İki tane iki boyutlu dizi olduğunu varsayalım:

Her biri kaynak dizilerin karşılık gelen öğelerinin toplamı olan bir dizi bulun:

Aşağıdaki adımları izleyin:

Ortaya çıkan dizinin elemanlarının yerleştirileceği hücre bloğunu seçin: B2: C3.

Seçimi sıfırlamadan, geçerli hücreye (veya formül satırına) şu ifadeyi gireriz:

={1;2:3;4}+{10;20:30;40}.

Aynı anda Ctrl + Shift + Enter tuş kombinasyonuna basın. Böyle bir tuş kombinasyonunu kullanmak, Excel'e bir formüle dizilerle girildiğini söyler. Bir tablo formülü girerken Excel otomatik olarak parantez ekler. Bu parantezler formül çubuğunda görünür, ancak bu parantezler manuel olarak girilirse, formül metin olarak algılanır. Bu formülün işlenenleri sabit dizilerdir.



Seçilen aralıkta, elde edilen dizinin elemanlarını elde ederiz. Dizileri olan formüller birden fazla sonuç vermiştir: çözelti modunda, Şekil 224'te gösterilen bir sayılar dizisi görmekteyiz, formülleri gösterme modunda, Şekil 225'teki formüller dizisi.

Şekil 224

Şekil 225

Şekil 225'ten görülebileceği gibi, mevcut hücreye girilen formül seçilen aralıktaki her hücreye yazılmıştır. Bu “tek” formül, aynı aralıkta, seçilen aralıktaki çeşitli formüller halinde dört hücrede var gibi görünmektedir. Ancak bunlarda ayrı değişiklik yapmak mümkün değildir. Bu sadece tüm aralığı vurgulayarak yapılabilir. 2:C3. Aralık 2:CŞekil 3, dizi boşluğunu temsil eder ve tablo formülü, her bir hücrede depolanır.

Formülde bir sabitler dizisi kullanılıyorsa, diğer tüm bileşenlerin ilk diziyle aynı boyuta sahip olması gerekir. Gerekirse, Excel gerekli bileşenleri istenen boyuta genişletir. Tüm bileşenler, en çok satır ve sütuna sahip bileşenlerle aynı sayıda satır ve sütuna sahip olmalıdır.

Örneğin, bileşenlerden birinin iki satır ve üç sütundan oluşan iki boyutlu bir dizi olmasına izin verin. = (1; 2; 3: 4; 5; 6) * 2 formülünü kullanarak hesaplama sonuçlarını sunmak için, 2x3 hücreli bir blok seçilmesi gerekir.

Orijinal dizinin bileşenlerinden biri 2 × 3 dizisi, diğeri ise tek bir değerdir. Bu formülle hesaplanırken, ikinci bileşen otomatik olarak 2 × 3 boyut dizisine genişletilecektir ve bu formül = (1; 2; 3: 4; 5; 6) * (2; 2; 2; 2; 2; 2 olarak hesaplanacaktır. ). Sonuç, Şekil 226'da gösterilmiştir.

Bir değer dizisi (bir dizi sabiti veya bir sabit dizisi), kullanabileceğiniz bir sayılar veya metin değerleri topluluğudur. Dizi sabitleri belirli bir biçimde, örneğin, sayılar (1: 2: 3: 4: 5) veya metin değerleri için ("Kuzey": "GÜNEY": "Doğu": "Batı") girilmelidir.

Normal bir formülde, değeri içeren hücreye veya sabit olarak da adlandırılan değere bir referans girebilirsiniz. Benzer şekilde, bir dizi başvurusu girebilir veya değer dizisihücrelerde bulunan (EXCEL'in yardımında dizi sabiti).  Dizi sabitleribelirli bir formatta girilmelidir.

Tek boyutlu bir sabit dizi oluşturma

Oluşturmadan önce Sabit dizisinormal değerleri içeren hücre aralığına yakından bakın (bkz. Örnek dosya)

  • bir hücre aralığında bir 1: bir 5   Örneğin, 1 ile 5 arasında 5 ardışık sayı girin.
  • hücrede B1   formülünü girin = A1: A5;

  • kaydırmada A1: A5   ve tuşuna basın;
  • aralıktaki bir değerler kümesi olan bazı kayıtları (1: 2: 3: 4: 5) alın A1: A5

Bu değer kümesinin yanı sıra küme parantezi içinde çerçevelenmiş, değerlerin kendisi sütunlarla ayrılmıştır. Değerler bir dizgeye yerleştirilmişse (aralıkta A1: E1 ) ve bir sütunda olmayan değerler noktalı virgülle (1; 2; 3; 4; 5) ayrılır.

Hadi yaratalım dizi sabiti  hücrede B2. Bunu yapmak için hücreye ifade = (1: 2: 3: 4: 5) girin ve ENTER. Değerler dizisi  otomatik olarak parantez içinde değil dizi formülleri  tıkladıktan sonra CTRL + ÜST KRKT + ENTER. Bu elle yapılmalıdır. Dizinin yalnızca ilk değeri hücreye yansıtılır, yani. 1.

genellikle değer dizisi  bir hücreye girmeyin, çünkü Bu durumda, bireysel değerleri çıkarmak mümkün değildir. Tüm değerlerimizi görüntülemek için değer dizisi  Bir sütunda 5 hücre seçmeniz gerekir (örneğin, B1: B5 ), enter ifadesinde = (1: 2: 3: 4: 5) ve tıklayın CTRL + ÜST KRKT + ENTER.

Şimdi dizinin bir öğesini, örneğin hücreden kaldırmayı deneyeceğiz. B 3 . Bir uyarı alıyoruz " Dizinin parçası değiştirilemiyor"Belli bir dizi koruması var.

İçin sıkıcı girişi önlemek için dikeysabitler dizisi, formül = STRING (1: 5) kullanabilirsiniz. Herhangi bir boş hücreye yazdıktan sonra, formül çubuğundan seçin ve ardından Tamam'ı tıklatın. ENTER. Bir dizi sabit alın (1: 2: 3: 4: 5). Hücre içeriğini panoya kopyalayın ( CTRL + C), ardından dizinin boyutuna karşılık gelen dikey hücre aralığını seçin, içeriği aktif hücreye yerleştirin. Panove tıklayın CTRL + ÜST KRKT + ENTER.

Yatay sabitler dizisi için ardışık sayıların sıkıcı girişini önlemek için, aşağıdaki formülü kullanın. = TAŞIMA (HAT (1: 5))  veya = COLUMN (A: E). Bir sabitler dizisi alın = (1; 2; 3; 4; 5). Dizi değerleri noktalı virgülle ayrılır.

Bir dizi sabit kullanımı

A. Vektörlerin çarpımı (sütun sütun, satır satır)
  Yardımı ile dizi formülleri  değer sütununu çarp B 2: B 6 ) tarihinde sabitler dizisi  (1: 2: 3: 4: 5) ve özetle. Sabit dizi  iki nokta üst üste ile dikey olarak yazılmış, yani ayrıca bir sütunu temsil eder. Sütun ve dizinin boyutları eşleşmelidir.

TOPLAM (B2: B6 * (1: 2: 3: 4: 5)

Formülü girdikten sonra, tıklamanız gerekir CTRL + ÜST KRKT +ENTER.

Dizi formülü  ilk olarak, kolondaki değerlerin elementwise çarpımını ve dizideki sabitleri uygular. Bu formülün eşdeğeri aşağıdaki ortak ifadedir:

TOPLAM (B2 * 1; B3 * 2; B4 * 3; B5 * 4; B6 * 5)

Son ekleme, SUM () işlevini kullanarak değerlerin eklenmesidir.

B. Değerleri Kontrol Et
  Hücredeki değerin eşit olup olmadığını kontrol edin A1   spesifik değerlerden biri: 4, 6 veya 9.

OR (A1 = (4; 6; 9))

Formül girdikten sonra basmaya gerek yoktur CTRL + ÜST KRKT + ENTER. Bu tür bir kayıt, iç içe geçmiş işlevlerin IF () kullanımına kıyasla bir formül oluşturma süresini önemli ölçüde azaltabilir.

Sabit dizi adlandırma

Sabit dizisi  atanabilir. Genellikle, bu, benzer sonlu sayıda element = (1: 2: 3) olan diziler gibi, benzer değerlerden oluşan bir grup oluşturan sabitlerle yapılır.

Atamak sabitler dizisi  Adın aşağıdakileri yapması gerekir:

  • sekmede formül  bir grupta Belirli İsimler  takım seç Bir isim ata.
  • Alanında İlk isim  girmek Massiv123.
  • Alanında aralığı  girmek sabitler dizisi  (parantezleri elle yazmayı unutmayın), örneğin (1: 2: 3);
  • Tamam'a tıklayın.

Örnek, formülü yazarak buluyoruz. = ÖZET (BÜYÜK (A1: A10; Kütle123)).

Aralığında olduğu varsayılmaktadır A1: A10   Sayısal değerlerin bir listesi var.

İki boyutlu bir sabit dizi oluşturma

İki boyutlu bir sabitler dizisi oluşturmak için aşağıdakileri yapın:

  • kitapta dört sütun ve üç satırdan bir hücre aralığı seçin ( A1: D3 ).
  • aktif hücrede ( A1), içinde Formül hattı  ifadeyi girin ={1;2;3;4: 5;6;7;8: 9;10;11;12}
  • tuş kombinasyonuna basın CTRL + ÜST KRKT +ENTER

"Const dizisi", sabit olarak bildirilen bir değişkenler dizisidir. TVarRec yapısı tarafından doğrudan temsil edilirler. Parantezler sadece diziyi sınırlar. Bir sabitler dizisi, değişken sayıda değişken tipi parametreyi prosedüre aktarmanızı sağlar. İşte bir örnek:

tip

TVarRec = kayıt

Veri: kayıt durumu Tamsayısı

0: (L: Uzun);

1: (B: Boolean);

2: (C: Char);

3: (E: ^ Uzatılmış);

4: (S: ^ string);

5: (P: İşaretçi);

6: (X: PChar);

7: (O: Proje);

uç uca gelir;

Tag: Bayt;

Sayfalar: Byte dizisi [0 ..2];

uç uca gelir;

işlev PtrToStr (P: İşaretçi): string;

const

HexChar: Char'ın [0 ..15] dizisi = "0123456789ABCDEF";

işlev HexByte (B: Byte): string;

başlamak

Sonuç: = HexChar [B shr 4] + HexChar [B ve 15];

uç uca gelir;

işlev HexWord (W: Word): string;

başlamak

Sonuç: = HexByte (Yüksek (W)) + HexByte (Düşük (W));

uç uca gelir;

başlamak

Sonuç: = HexWord (HiWord (LongInt (P)))) + ":" + HexWord (LoWord (LongInt (P)));

uç uca gelir;

prosedür Ekranı (X: const dizisi);

I: Tamsayılı;

başlamak

i için: = 0 ila Yüksek (X) yapmak

tVarRec (X [I]) ile Veriler

başlamak

etiketi

0: ShowMessage ("Tamsayı:" + IntToStr (L));

1: eğer B ise

ShowMessage ("Boolean: True")

başka

ShowMessage ("Boolean: False");

2: ShowMessage ("Karakter:" + C);

3: ShowMessage ("Float:" + FloatToStr (E ^));

4: ShowMessage ("Dize:" + S ^);

5: ShowMessage ("İşaretçi:" + PtrToStr (P));

6: ShowMessage ("PChar:" + StrPas (X));

7: ShowMessage ("Nesne:" + O.ClassName);

uç uca gelir;

uç uca gelir;

uç uca gelir;

prosedür TForm1.Button1Click (Gönderen: TObject);

P: Char'ın [0 ..5] dizisi;

başlamak

P: = "Merhaba" # 0 ;

Ekran ([-12345678, Doğru, "A", 1,2345, "ABC", Ptr ($ 1234 , $5678 ), P,

Form1]);

uç uca gelir;

Bir sabitler dizisi (const dizisi) aslında açık bir TVarRec dizisidir (çevrimiçi yardımda önceden tanımlanmış Delphi türlerinin açıklamasını bulabilirsiniz). Object Pascal'da aşağıdaki "sözde kod" daha da geliştirilmesi için bir çerçeve olarak hizmet verebilir:

yordam AddStuff (const A: const dizisi);

var i: Tam sayı;

başlamak

i için: = Düşük (A) ila Yüksek (A)

a [i] ile

vType büyük / küçük harf durumu

başlamak

(tüm gerçek formatlarda pozitif bir tamsayı ekleyin

Otomatik olarak genişletilmiş döküm)

uç uca gelir;

başlamak

(tamsayı ekleyin, tüm tamsayı formatları

LongInt'a otomatik olarak atla)

uç uca gelir;

başlamak

eğer VObject DArray ise

dArray (VObject) ile yapmak

başlamak

(bir dizi çift tipi ekleriz)

vObject IArray ise başka

iArray ile (VObject) yapmak

başlamak

(bir tamsayı tipi dizisi ekleyin)

uç uca gelir;

uç uca gelir;

uç uca gelir; (Case)

uç uca gelir; (AddStuff)

Daha fazla bilgi için çevrimiçi yardımın "açık diziler" bölümüne bakın.
  Delphi Konseylerinden Valentina Ozerov tarafından alınmıştır.
  Koleksiyon Kuliba

Çalışma zamanında sabitler dizisi

Gönderen: Peter Altında
  ... peki, bu sözdizimi doğrudan desteklemiyor, çünkü Const Array dizisi sabitleri, genellikle derleme zamanının özellikleri açısından açık dizilere benzer. Fakat en azından açık bir dizilimin nasıl uygulandığına dair temel bir bilgiye sahip olarak, bu nahoş anın üstesinden gelebilirsiniz. Bunun için ihtiyacımız olan şey: parametrelerinizi "kabul eden" ve dinamik bir şekilde atanmış bir TVarRec dizisi ve derleyici tarafından "küfür etmeden" böyle bir diziyle çalışmanıza izin veren Format işlevinin "diğer adı" (alias).

tip

(TVarRec'in dinamik dizi dizisi için tür bildirimi)

TVarArray = dizi [0 ..Yüksek (Word) div TVarRec'in Boyut (TVarRec) - 1];

PVarArray = ^ TVarArray;

(Format işlevi için bir takma ad türü bildiririz. Geçilen parametrelerin

Yığın, çağrının normal çağrı Biçimindeki ile aynı sıradadır)

FormatProxy = function (const aFormatStr: string; var aVarRec: TVarRec;

HighIndex: Tam sayı): string;

(AddVarRecs, A dizisinde geçirilen parametreleri pRecs ^ 'e kopyalar,

PRecs ^ ile. highIndex - en büyük kullanılabilir dizin pRecs numarası

Dağıtılmış elemanlar - 1.)

yordam AddVarRecs (pRecs: PVarArray; atIndex, highIndex: Integer; const A:

const dizisi);

I: Tamsayılı;

başlamak

eğer pRecs<>  nil o zaman

i için: = 0 - Yüksek (A) yapmak

başlamak

eğer atIndex<= highIndex then

başlamak

PRecs ^ [atIndex]: = A [i];

Inc (atIndex);

son (eğer)

başka

break;

uç uca gelir; (For),

uç uca gelir; (AddVarRecs)

prosedür TScratchMain.SpeedButton2Click (Gönderen: TObject);

S: string;

Proxy: Format Proxy;

başlamak

(dört parametre için bir dizi dağıtıyoruz, indeksler - 0..3)

GetMem (p, 4 * Sizeof (TVarRec));

(AddVarRecs'e sonraki çağrılarla parametreler ekleyin)

AddVarRecs (p, 0, 3, [12, 0.5, "Şablon"]);

AddVarRecs (p, 3, 3, ["Test"]);

(Formatın yetkilerini alıyoruz)

   @ Proxy: = @ SysUtils.Format;

(Dinamik olarak oluşturulmuş bir parametre dizisi ile arayın.

Doğal olarak, bir format dizgisi de oluşturulabilir.

Ve programın yürütülmesi sırasında. )

S: = Proxy ( "Tam sayı:% d, Gerçek:% 4.2f, Satırlar:% s,% s", p ^ [0], 3);

(sonucu göster)

ShowMessage (S);

nihayet

FreeMem (p, 4 * Sizeof (TVarRec));

uç uca gelir;

uç uca gelir;


Umarım prensibi anlarsın. Doğal olarak, sınırlamalar vardır. Sayısal değerleri, dize değişkenlerini ve değişmezleri AddVarRecs'e aktarabilirsiniz, ancak dize ifadelerini değil! Bu durumda, derleyici yığında geçici bir dize oluşturmalı, onu AddVarRecs'e iletmelidir (veya TVarRec'deki adrese daha iyi) ve nihai olarak Proxy'yi gönderirseniz, var olmaktan çıkabilir veya yığında başka verilerle yazılabilir. bütün dizi!
  Sadece Delphi 1.0'da test edildi!
Tema devam ediyor:
cihazlar

Ne-ne, ancak kanıtlanmış popüler bilgeliği akıllı telefonlarımız ve dizüstü bilgisayarlarımız modası geçmediği kadar hızlı değildir. “Bir kere görmek, 100 kez duymaktan iyidir.” Biz denedik ...