Determinarea numelor unice dintr-un tabel #Excel


Una din problemele des întâlnite în practica de zi cu zi, este legată de realizarea unei liste de nume sau valori unice din unul sau mai multe tabele sau coloane.

În exemplul pe care vi-l propun este vorba despre o listă de echipe din care fac parte în mod dinamic unul sau mai mulți oameni.

Ca să putem determina din câte echipe face parte un anumit om, avem nevoie de determina numele unic al angajatului. Presupunem că aceste prenume reprezintă fiecare câte un om.

Primul lucru pe care trebuie să-l facem este să unim toate coloanele într-una singură. Un fel de copiere a valorilor unele sub altele.

Pentru aceasta putem utiliza funcția INDEX cu o combinație dinamică de linii și coloane):

=INDEX(aNume;

1+INT((ROW(A1)-1)/COLUMNS(aNume));

MOD(ROW(A1)-1+COLUMNS(aNume);COLUMNS(aNume))+1)

 

În exemplul meu am denumit zona de date cu numele aNume ca să nu folosesc adresarea absolută de tipul: $A$2:$D$8.

 

1+INT((ROW(A1)-1)/COLUMNS(aNume)) – Determină seturi de numere repetitive și consecutive pentru parametrul row_num al lui Index . Exemplu: 1,1,1,1,2,2,2,2,3….

MOD(ROW(A1)-1+COLUMNS(aNume);COLUMNS(aNume))+1) – Determină seturi de numere consecutive echivalente numărului de coloane a blocului de celule analizat.

 

Ca să pot copia formula în jos cu fill down am generat întâi o coloană de numere de dimensiunea tabelului: număr de linii * număr coloane.

=SEQUENCE(ROWS(aNume)*COLUMNS(aNume))

După ce avem lista de nume, aplicăm pe o coloană adiacentă formula de unicitate:

=SORT(UNIQUE(FILTER(G2:G27;G2:G27<>0)))

Rezultatul final în coloana H:

Aceeași operațiune se poate realiza și prin scripturile de automatizare, dar momentan apelarea relativă în Automate din Excel Online este în preview.

Versiunea cu script editor din Excel pentru a consolida cele 4 coloane de nume:

Dacă aveți alte metode de unifica mai multe coloane în una singură, puteți folosi secțiunea de comentarii.

 

Sper să fie util cuiva!

 

 

Publicitate

6 gânduri despre „Determinarea numelor unice dintr-un tabel #Excel

Adăugă-le pe ale tale

  1. let
    Source = Excel.CurrentWorkbook(){[Name=”Table1″]}[Content],
    #”Changed Type” = Table.TransformColumnTypes(Source,{{„Echipa 1”, type text}, {„Echipa 2”, type text}, {„Echipa 3”, type text}, {„Echipa 4″, type text}}),
    #”Lista cu toti” = List.Combine({Table.Column(#”Changed Type”, „Echipa 1″),Table.Column(#”Changed Type”, „Echipa 2″),Table.Column(#”Changed Type”, „Echipa 3″),Table.Column(#”Changed Type”, „Echipa 4″)}),
    #”Lista cu unici” = List.Distinct(#”Lista cu toti”),
    #”Tabel cu unici” = Table.FromList(#”Lista cu unici”, null, {„Unici”}),
    #”Unici sortati” = Table.Sort(#”Tabel cu unici”,{{„Unici”, Order.Ascending}}),
    #”Unici reali” = Table.SelectRows(#”Unici sortati”, each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {„”, null})))
    in
    #”Unici reali”

    Apreciat de 1 persoană

  2. Desi stiu ca e alta tehnologie, eu as face totul cu bash scripting. Mi se pare ca as obtine mult mai usor ce se doreste. Export in csv al fisierului excel, folosirea comenzii awk sau cut pentru a afisa coloanele unele sub altele cu export intr-un fisier nou, apoi se poate aplica comanda uniq pentru a sterge duplicatele. Daca doriti fac un demo zilele astea :))

    Apreciat de 1 persoană

      1. cat descrie continutul fisierului example.csv, care are 2 coloane delimitate cu virgula (nu am mai facut 4) cu numele din exemplul dvs, apoi redirectez | unde aplic comanda awk care afiseaza coloana 1 si o exporta (>) in fisierul export, apoi mai execut odata awk pt coloana 2 pe care o adaug fisierului export prin append (>>). La final, sortez toate numele , scot denumirea coloanelor cu grep -v, si folosesc uniq cu atributul c ca sa-mi arate atat randurile duplicate cat si pe cele unice si le arata un count in stanga.

        –> cu unicitate:

        Tue Feb 07 ~ irina@kiki’s mac$ cat ~/Desktop/example.csv | awk -F, ‘{print $1}’ > export ; cat ~/Desktop/example.csv | awk -F, ‘{print $2}’ >> export ; cat export | sort | uniq -c | grep -v column

        1 Carmen
        2 Costel
        1 Gina
        1 Ioana
        1 Ionel
        2 Marcel
        2 Maria
        1 Vasile

        –> Fara unicitate:

        Tue Feb 07 ~ irina@kiki’s mac$ cat ~/Desktop/example.csv | awk -F, ‘{print $1}’ > export ; cat ~/Desktop/example.csv | awk -F, ‘{print $2}’ >> export ; cat export | sort

        Carmen
        Costel
        Costel
        Gina
        Ioana
        Ionel
        Marcel
        Marcel
        Maria
        Maria
        Vasile
        column 1
        column 2

        Apreciat de 1 persoană

Lasă un răspuns

Completează mai jos detaliile cerute sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare /  Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare /  Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare /  Schimbă )

Conectare la %s

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Blog la WordPress.com.

SUS ↑

%d blogeri au apreciat: