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.