סאָרט דורך פאָרמולע

אויב איר דאַרפֿן צו סאָרט די רשימה, עס זענען פילע וועגן צו דיין דינסט, די יזיאַסט פון וואָס איז די סאָרט קנעפּלעך אויף די קוויטל אָדער אין די מעניו. דאַטע (דאַטן - סאָרט). אָבער, עס זענען סיטואַטיאָנס ווען די סאָרטירונג פון דער רשימה דאַרף זיין אויטאָמאַטיש געטאן, דאָס הייסט פאָרמולאַס. דאָס קען זיין פארלאנגט, פֿאַר בייַשפּיל, ווען דזשענערייטינג דאַטן פֿאַר אַ פאַל-אַראָפּ רשימה, ווען קאַלקיאַלייטינג דאַטן פֿאַר טשאַרץ, אאז"ו ו. ווי צו סאָרט אַ רשימה מיט אַ פאָרמולע אויף די פליען?

אופֿן 1. נומעריק דאַטן

אויב די רשימה כּולל בלויז נומעריק אינפֿאָרמאַציע, איר קענען לייכט סאָרטינג עס מיט די פאַנגקשאַנז לעצט (קליין) и ליניע (רודערן):

 

פונקציע לעצט (קליין) פּולז אויס פון די מענגע (זייַל א) די n-טה קלענסטער עלעמענט אין אַ רודערן. יענע. SMALL(A:A;1) איז דער קלענסטער נומער אין דער זייַל, SMALL(א:א;2) איז דער צווייטער קלענסטער, און אזוי ווייטער.

פונקציע ליניע (רודערן) קערט די רודערן נומער פֿאַר די ספּעסיפיעד צעל, ד"ה ROW(A1)=1, ROW(A2)=2 עטק. אין דעם פאַל, עס איז געניצט פשוט ווי אַ גענעראַטאָר פון אַ סיקוואַנס פון נומערן n=1,2,3 ... פֿאַר אונדזער סאָרטעד רשימה. מיט דער זעלביקער הצלחה, עס איז געווען מעגלעך צו מאַכן אַן נאָך זייַל, פּלאָמבירן עס מאַניואַלי מיט די נומעריקאַל סיקוואַנס 1,2,3 ... און אָפּשיקן צו עס אַנשטאָט פון די ROW פונקציע.

אופֿן 2. טעקסט רשימה און רעגולער פאָרמולאַס

אויב די רשימה כּולל ניט נומערן, אָבער טעקסט, די SMALL פֿונקציע וועט ניט מער אַרבעטן, אַזוי איר מוזן גיין אַ אַנדערש, אַ ביסל מער, וועג.

ערשטער, לאָזן אונדז לייגן אַ סערוויס זייַל מיט אַ פאָרמולע ווו די סיריאַל נומער פון יעדער נאָמען אין דער צוקונפֿט אויסגעשטעלט רשימה וועט זיין קאַלקיאַלייטיד מיט די פֿונקציע. COUNTIF (COUNTIF):

אין די ענגליש ווערסיע עס וועט זיין:

=COUNTIF(א:א,»<"&A1)+COUNTIF($A$1:A1,"="&A1)

דער ערשטער טערמין איז אַ פֿונקציע פֿאַר קאַונטינג די נומער פון סעלז וואָס זענען ווייניקער ווי די קראַנט. די רגע איז אַ זיכערקייַט נעץ אין פאַל קיין נאָמען אַקערז מער ווי אַמאָל. דעריבער זיי וועלן נישט האָבן די זעלבע, אָבער סאַקסעסיוולי ינקריסינג נומערן.

איצט די באקומען נומערן מוזן זיין עריינדזשד סאַקווענטשאַלי אין אַסענדינג סדר. פֿאַר דעם איר קענען נוצן די פונקציע לעצט (קליין) פון דער ערשטער וועג:

 

נו, לעסאָף, עס בלייבט נאָר צו ציען די נעמען פון דער רשימה דורך זייער נומערן. צו טאָן דאָס, איר קענען נוצן די פאלגענדע פאָרמולע:

 

פונקציע מער יקספּאָוזד (מאַטש) זוכן אין זייַל ב פֿאַר די געבעטן סיריאַל נומער (1, 2, 3, אאז"ו ו) און, אין פאַקט, קערט די נומער פון די שורה ווו די נומער איז ליגן. פֿונקציע ינדעקס (אינדעקס) ציט אויס פון זייַל א די נאָמען ביי דעם שורה נומער.

אופֿן 3: ​​מענגע פאָרמולע

דער אופֿן איז, אין פאַקט, דער זעלביקער פּלייסמאַנט אַלגערידאַם ווי אין מעטאַד-2, אָבער ימפּלאַמענאַד דורך אַ מענגע פאָרמולע. צו פאַרפּאָשעטערן די פאָרמולע, די קייט פון סעלז C1: C10 איז געגעבן דעם נאָמען רעשימע (סעלעקטירן סעלז, דריקן Ctrl + F3 און קנעפּל מאַכן):

 

אין צעל E1, נאָכמאַכן אונדזער פאָרמולע:

= אינדעקס(רשימה; MATCH(קליין (קאַנטיף(רשימה; "<"&רשימה); ROW(1:1)); COUNTIF(רשימה; "<"&ליסטע); 0))

אָדער אין די ענגליש ווערסיע:

= אינדעקס(רשימה, MATCH(SMALL(COUNTIF(רשימה, «<"&רשימה), ROW(1:1)), COUNTIF(רשימה, "<"&ליסטע), 0))

און שטופּן Ctrl + Shift + Enterצו אַרייַן עס ווי אַ מענגע פאָרמולע. דערנאָך די ריזאַלטינג פאָרמולע קענען זיין קאַפּיד אַראָפּ די גאנצע לענג פון דער רשימה.

אויב איר ווילן די פאָרמולע צו נעמען אין חשבון נישט אַ פאַרפעסטיקט קייט, אָבער קענען סטרויערן ווען אַדינג נייַ עלעמענטן צו דער רשימה, איר וועט דאַרפֿן צו טוישן די סטראַטעגיע אַ ביסל.

ערשטער, די רשימה קייט וועט זיין באַשטימט דינאַמיקאַללי. צו טאָן דאָס, איר דאַרפֿן צו ספּעציפיצירן נישט אַ פאַרפעסטיקט קייט C3: C10, אָבער אַ ספּעציעל פאָרמולע וואָס וועט אָפּשיקן צו אַלע בנימצא וואַלועס, ראַגאַרדלאַס פון זייער נומער. דריקט אַלט + פקסנומקס אָדער עפענען דעם קוויטל פאָרמולאַס - נאָמען מאַנאַגער (פאָרמולעס - נאָמען מאַנאַגער), שאַפֿן אַ נייַע נאָמען און אין די פעלד רונג (רעפערענץ) אַרייַן די פאלגענדע פאָרמולע (איך יבערנעמען אַז די קייט פון דאַטן צו זיין אויסגעשטעלט סטאַרץ פֿון צעל C1):

=СМЕЩ(C1;0;0;СЧЁТЗ(C1:C1000);1)

=OFFSET(C1,0,0,SCHÖTZ(C1:C1000),1)

צווייטנס, די אויבן מענגע פאָרמולע וועט דאַרפֿן צו זיין אויסגעשטרעקט אַראָפּ מיט אַ גרענעץ - מיט די דערוואַרטונג פון נאָך דאַטן אריין אין דער צוקונפֿט. אין דעם פאַל, די מענגע פאָרמולע וועט אָנהייבן צו געבן אַ טעות #נומער אויף סעלז וואָס זענען נישט נאָך אָנגעפילט. צו ינטערסעפּט עס, איר קענען נוצן די פונקציע פאַלש, וואָס דאַרף זיין מוסיף "אַרום" אונדזער מענגע פאָרמולע:

=IFERROR(אינדעקס(רשימה; MATCH(SMALL(COUNTIF(רשימה; "<"&רשימה); ROW(1:1)); COUNTIF(רשימה; "<"&רשימה; 0));»»)

=IFERROR(NDEX(List, MATCH(SMALL(COUNTIF(List, «<"&List), ROW(1:1)), COUNTIF(List, "<"&List), 0));"")

עס קאַטשאַז די #NUMBER טעות און אַוטפּוץ אַ פּאָסל (ליידיק ציטירט) אַנשטאָט.

:

  • סאָרט קייט דורך קאָליר
  • וואָס זענען מענגע פאָרמולאַס און וואָס זענען זיי דארף
  • סאָרט סאָרטינג און דינאַמיש ערייז אין די נייַע אָפפיסע 365

 

לאָזן אַ ענטפֿערן