13.05.2022, Vladimír Klaus, navštíveno 1080x

MS Excel
MS Office

Při práci na jednom projektu jsem dostal k dispozici CSV, které bylo třeba naimportovat do databáze. Ale nejprve bylo potřeba připravit příslušnou tabulku. A pokud to chcete udělat opravdu korektně, měli byste textová pole mít adekvátně dlouhá. Žádné NVARCHAR(MAX) apod.

Proto jsem hledal funkci, která zjistí v daném sloupci (poli) nejdelší text. Celý vzoreček se skládá z několika funkcí:

  • LEN / DÉLKA - vrátí délku daného textu, v našem případě ale nejde o jednoduchý text, ale o celou oblast; výsledkem je tudíž sada hodnot
  • MAX - vrátí největší hodnotu, což v našem případě vrátí největší délku textu ze zadané sady
  • MATCH / POZVYHLEDAT - vrátí relativní pozici (v rámci oblasti) hledaného textu, v našem případě toho nejdelšího textu
  • INDEX - vrátí hodnotu z dané oblasti na zadané relativní pozici, takže vlastně ten nejdejší text

Anglická verze zobrazující nejdelší text:

=INDEX(range,MATCH(MAX(LEN(range)),LEN(range),0))

A česká verze (s příšernými názvy funkcí, ale také se středníky místo čárek) zobrazující délku nejdelšího nalezeného textu:

=DÉLKA(INDEX(C2:C1000;POZVYHLEDAT(MAX(DÉLKA(C2:C1000));DÉLKA(C2:C1000);0)))

Pokud vám jde jen o délku, pak si můžete předchozí vzoreček velmi zjednodušit, protože ta největší délka se používá již uvnitř:

=MAX(DÉLKA(C2:C1000))

Jak zobrazit v Excelu délku nejdelšího textu, obr. 1

Za zmínku ještě stojí fakt, že pokud hledáte třeba ten nejdelší text, tak se vrátí první nalezený.

Zdroje: