MVP logo
    Sizin Brauzer: , Versiya
Çərşənbə, 28.06.2017, 1:56 PM
Salam Qonaq | RSS
Ana səhifə | Fayl Kataloqu | Qeydiyyat | Giriş
Saytın menyusu

Kateqoriyalar
VBA [21]
Formullar [31]
Massiv Formullar [11]
Ümumi [4]

Sorğu
"Excel"in hansı versiyasını istifadə edirsiniz?
Səsvermə sayı: 511

Statistika

Cəmi online: 1
Qonaqlar: 1
Userlər: 0

Müsabiqələr

Ana səhifə » Fayllar » Excel Tricks » Massiv Formullar

Rəqəmlərin mətndən ayrılması (Extract numbers)
[ Bu serverdən yüklə (14.0Kb) ] 29.07.2011, 5:59 PM
Bəzən verilmiş mətndən yalnız rəqəmlərin çıxarılması (extract numbers) məsələsilə rastlaşırıq. Buyurun bu əməliyyatın hər bir mərhələsilə ardıcıl tanış ola bilərsiniz.
(Massiv funksiyasıdır "Ctrl+Shift+Enter"-lə daxil edilir!)
1.ROW(INDIRECT("1:"&LEN(A7))) - (I) mətnin simvollarını birincisindən sonuncusuna kimi ardıcıl düzür
2.MID(A7;ROW(INDIRECT("1:"&LEN(A7)));1) (II) bu bütün simvolları bir-bir ayırır
3.--MID(A7;ROW(INDIRECT("1:"&LEN(A7)));1) (III) bu bütün simvolları 1-ə vurur (hərf olanlar error göstərəcək)
4.ISNUMBER(--MID(A7;ROW(INDIRECT("1:"&LEN(A7)));1)) (IV) burada rəqəmlərin məntiqi yoxlama ardıcıllığını alırıq
5.ISNUMBER(--MID(A7;ROW(INDIRECT("1:"&LEN(A7)));1))*ROW(INDIRECT("1:"&LEN(A7))) (V) və burada isə
həmən rəqəmə çevirilmiş məntiqi ardıcıllıq simvolların uyğun sıra sayına vurulur.
"False" olanlar uyğun sıra sayına vurularkən sıfır nəticəsini verir digərləri isə 1-ə vurulduqları üçün
("True" olanlar) öz sıra saylarını saxlamış olurlar.
6.LARGE(ISNUMBER(--MID(A7;ROW(INDIRECT("1:"&LEN(A7)));1))*ROW(INDIRECT("1:"&LEN(A7)));
ROW(INDIRECT("1:"&LEN(A7)))) (VI) sıra sayları ən böyükdən başlayaraq siralayır
7.LARGE(ISNUMBER(--MID(A7;ROW(INDIRECT("1:"&LEN(A7)));1))*ROW(INDIRECT("1:"&LEN(A7)));
ROW(INDIRECT("1:"&LEN(A7))))+1 (VII) burada "+1" yazılışı "Error" lardan yan keçmək üçündür (MID("TEXT";0;1)=ERROR olduğu üçün)
8.MID(0&A7;LARGE(ISNUMBER(--MID(A7;ROW(INDIRECT("1:"&LEN(A7)));1))*ROW(INDIRECT("1:"&LEN(A7)));
ROW(INDIRECT("1:"&LEN(A7))))+1;1) (VIII) "0&A7" - burada mətnin əvvəlinə sıfır isə on a görə birləşdirilir ki, (VI) nəticəmizdəki alınan 1-ləri
(burada- {14;13;12;9;7;6;5;1;1;1;1;1;1}) sıfıra çevriləcək. Çünki birinci yerdə sıfır dayanıb. Bu cür nəticəni əldə
edilməsi bizə növbəti mərhələdə lazım olacaq.
9. (VIII)-ci mərhələ bizə {"9";"6";"8";"5";"3";"2";"1";"0";"0";"0";"0";"0";"0"} nəticəsini verir.
Göründüyü kimi artıq bu nəticəmizdə "9"-u təklik, "6"-nı onluq "8"-i yüzlük və s... kimi nəzərə alaraq uygun
olaraq 1-ə, 10-a 100-ə və s vurub
toplamaqla "1235869"-i yəni tələb olunan nəticəni almış olarıq.(IX)
10.MID(0&A7;LARGE(ISNUMBER(--MID(A7;ROW(INDIRECT("1:"&LEN(A7)));1))*ROW(INDIRECT("1:"&LEN(A7)));
ROW(INDIRECT("1:"&LEN(A7))))+1;1)*POWER(10;ROW(INDIRECT("1:"&LEN(A7)))-1) burada "POWER(10;ROW(INDIRECT("1:"&LEN(A7)))-1)" olan hissə {1;10;100;1000;10000;100000;1000000;10000000;100000000;1000000000;10000000000;
100000000000;1000000000000} nəticəsi isə uyğun olaraq "9"-a, "6"-ya, "8"-ə və s vurulur
sonda isə bu rəqəmləri cəmləmək lazım gəlir və budur nəticəmiz artıq hazırdır.



Code
SUM(MID(0&A7;LARGE(ISNUMBER(--MID(A7;ROW(INDIRECT("1:"&LEN(A7)));1))*ROW(INDIRECT("1:"&LEN(A7)));
ROW(INDIRECT("1:"&LEN(A7))))+1;1)*POWER(10;ROW(INDIRECT("1:"&LEN(A7)))-1))

Həmçinin vizual olaraq buradan baxa bilərsiniz.
Kateqoriya: Massiv Formullar | Yükləyən: Useful
Baxış sayı: 463 | Yükləmə sayı: 122 | Ratinqi: 0.0/0
Cəmi şərhlər: 0
Ad *:
E-poçt:
Kod *:
Daxil ol

Axtar

Dost Saytlar
  • www.planetaexcel.ru
  • www.programmersforum.ru
  • www.mrexcel.com
  • www.excelworld.ru
  • www.cyberforum.ru
  • www.excelvba.ru
  • www.muhasib.az

  • Sayğac
    free counters

    Saytın məlumatlarından istifadə edərkən mənbəyə istinad zəruridir!
    MyExcelWorld © 2010 - 2017
    Site managed by uCoz
    ILK-10 Azeri Website Directory