Excel formula: Poredaj tekst i brojeve pomoću formule -

Generička formula

=COUNTIF(data,"<="&A1)+(COUNT(data)*ISTEXT(A1))

Sažetak

Za dinamičko sortiranje podataka s brojevima i tekstom po abecednom redu možete upotrijebiti formulu za generiranje numeričkog ranga u pomoćnom stupcu, a zatim upotrijebiti INDEX i MATCH za prikaz vrijednosti na temelju ranga. U prikazanom primjeru formula u C5 je:

=COUNTIF(data,"<="&B5)+(COUNT(data)*ISTEXT(B5))

gdje je "podatak" imenovani raspon B5: B13.

Obrazloženje

Ova formula prvo generira vrijednost ranga pomoću izraza temeljenog na COUNTIF:

=COUNTIF(data,"<="&B5)

što je ovdje detaljnije objašnjeno. Ako podaci sadrže sve tekstualne vrijednosti ili sve numeričke vrijednosti, rang će biti točan. Međutim, ako podaci uključuju i tekst i brojeve, moramo "pomaknuti" rang svih tekstualnih vrijednosti kako bi se uzele u obzir numeričke vrijednosti. To je učinjeno s drugim dijelom formule ovdje:

+(COUNT(data)*ISTEXT(B7))

Ovdje koristimo funkciju COUNT za dobivanje broja numeričkih vrijednosti u podacima, a zatim pomnožimo rezultat s logičkim rezultatom ISTEXT, koji testira je li vrijednost tekst i vraća li TRUE ili FALSE. Ovo učinkovito poništava rezultat COUNT kada radimo s brojem u trenutnom retku.

Rukovanje duplikatima

Ako podaci sadrže duplikate, formula se može izmijeniti kako je prikazano u nastavku kako bi se dodijelio sekvencijalni rang vrijednostima koje se pojavljuju više puta:

=COUNTIF(data,"<"&B5)+(COUNT(data)*ISTEXT(B5))+COUNTIF($B$5:B5,B5)

Ova verzija prilagođava logiku početne funkcije COUNTIF i dodaje još COUNTIF s proširivanjem reference za povećanje duplikata.

Prikaži sortirane vrijednosti

Da bi dohvatio i prikazao sortirane vrijednosti po abecednom redu pomoću izračunate vrijednosti ranga, E5 sadrži sljedeću formulu INDEX i MATCH:

=INDEX(data,MATCH(ROWS($E$5:E5),rank,0))

gdje je "podatak" imenovani raspon B5: B13, a "rang" imenovani raspon C5: C13.

Za više informacija o načinu funkcioniranja ove formule pogledajte primjer ovdje.

Bavljenje prazninama

Prazne ćelije generirat će rang nula. Pod pretpostavkom da želite zanemariti prazne stanice, ovo dobro funkcionira jer gornja formula INDEX i MATCH započinje na 1. Međutim, vidjet ćete # N / A pogreške na kraju sortiranih vrijednosti, po jednu za svaku praznu ćeliju. Jednostavan način da se to riješi je umotavanje formule INDEX i MATCH u IFERROR ovako:

=IFERROR(INDEX(data,MATCH(ROWS($E$5:E5),rank,0)),"")

Zanimljivi članci...