Jak mogę grepować dane w programie Excel?


11

Mam plik Excel, który zawiera dane w dwóch kolumnach, takich jak:

Operator ID           MXS1268
Name                  ramesh    

Muszę sprawdzić duplikaty w wielu plikach Excel, które mają tę samą wartość dla identyfikatora operatora i wyświetlić lub umieścić go w jakimś pliku dziennika.


W zależności od tego, co chcesz zrobić, istnieją różne sposoby ich wykonywania w programie Excel. Jeśli chcesz wyszukać, możesz to zrobić za pomocą Ctrl + F, otwierając okno dialogowe Znajdź. Jeśli istnieje wiele kryteriów, być może filtry pomogą ci. Istnieje kilka sposobów usuwania duplikatów. Musisz być bardziej przejrzysty w tym, czego potrzebujesz. Najprawdopodobniej jednak podczas przeszukiwania tej witryny znajdziesz to, czego potrzebujesz, ponieważ Twoje wymagania wydają się dość proste.
— Amer

1
Czy wszystkie pliki Excel mają ten sam format dwukolumnowy? Są to pliki .xlsxlub .csv? Czy pliki mają wiele arkuszy? Dodanie dodatkowych informacji do pytania pomoże uzyskać odpowiedzi.
— Excellll,

przekonwertować na tekst i grep.
— Ярослав Рахматуллин

Odpowiedzi:


5

Nadal brak przyzwoitych odpowiedzi? Ponieważ powiedziałeś grep, zakładam, że wiesz, jak używać powłoki;

$ link=http://wizard.ae.krakow.pl/~jb/xls2txt/xls2txt-0.13.tar.gz
$ wget -nv "$link" && \
  tar xf `basename "$link"` && \
  cd $(basename "$link" .tar.gz) &&\
   make
2013-07-24 URL:(...)/xls2txt-0.13.tar.gz [12419/12419] -> "xls2txt-0.13.tar.gz"
cc -O2 -g -DVERSION=0.13 -c xls2txt.c -o xls2txt.o
cc -O2 -g   -c -o ole.o ole.c
cc -O2 -g   -c -o cp.o cp.c
cc -O2 -g   -c -o ummap.o ummap.c
cc -O2 -g   -c -o ieee754.o ieee754.c
cc -lm  xls2txt.o ole.o cp.o ummap.o ieee754.o   -o xls2txt

$ awkf() { awk -F\\t '{ printf "%20s | %-20s\n", $1, $2 }' ; }
$ x2t() { ./xls2txt $1 C4:D5 | awkf > `basename "$1" .xls`.txt ; }
$ x2t ramesh2.xls ; x2t ramesh.xls

I raport:

$ grep MXS1268 ramesh*txt
ramesh.txt:         Operator ID | MXS1268
ramesh2.txt:         Operator ID | MXS1268

Możesz uzyskać kopię pliku wejściowego za pomocą wget http://sprunge.us/MbhE -q -O- | base64.exe -d > ram.xls.
— Ярослав Рахматуллин

Chcę wypróbować twoje rozwiązanie, ale twój link jest „zabroniony”
— Ken Ingram

po prostu spójrz na plik przed jego uruchomieniem, nie bądź głupi.
— Ярослав Рахматуллин

Słuchać. Nie bądź osobisty. Otrzymuję błąd 403 z tym linkiem. „2019-02-08 09:38:13 BŁĄD 403: Zabroniony.”
— Ken Ingram

1
ok. myślałem, że masz na myśli coś innego. wystarczy google pakiet xls2txt
— Ярослав Рахматуллин

2

W systemie Linux lub Cygwin:

$ xlsx2csv myfile.xlsx | grep MXS1268 

Cholera. To było zbyt piękne, aby mogło być prawdziwe. Mam ją zainstalowaną, ale dostałem tylko błąd: ===> „Błąd wartości: niepoprawny literał dla int () z bazą 10:„ 1023 1025 ””
— Ken Ingram

Spróbuj obu z python2 i python3
— golimar

Eh Co masz na myśli? Spróbuj obu co?
— Ken Ingram

Mam listę 10 plików xlsx i chcę grep dla jednego kawałka danych.
— Ken Ingram

1

Możesz spróbować użyć openpyxl - lub dowolnej liczby pakietów Pythona - jeśli znasz podstawowy Python. Jeśli nie chcesz używać grep, wypisz program Excel na tekst i przeprowadź go przez grep. Lub po prostu napisz skrypt pygrep, aby zrobić to wszystko.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.