Scal arkusze kalkulacyjne


3

[Liczby, macOS]

Muszę scalić dane w 2 arkuszach kalkulacyjnych / tabelach. Oba zawierają dane kontaktowe. Druga tabela zawiera kolumnę, którą chcę dołączyć do pierwszej tabeli.
Teraz nie mogę po prostu skopiować / wkleić kolumny, ponieważ chociaż dwie tabele zawierają tę samą kolumnę A, nie zawierają jednakowej liczby wierszy.
Dla ilustracji poniżej zamieszczam przykładowe tabele.

Tabela 1

Name       Address          Phone
Mr. One    First Address    45120354554
Ms. Two    Second Address   42874518933
Mr. Three  Third Address    74125986538
Mr. Four   Fourth Address   95645740200

Tabela 2

Name       Address          Website
Mr. One    First Address    a@b.com
Mr. Three  Third Address    e@a.com

Jak mogę dołączyć Websitekolumnę do tabeli nr 1, aby jeśli Namekolumna pasowała, wkleja to, co znajduje się w Websitekolumnie tabeli nr 2, aby uzyskać wynik pokazany poniżej?

Tabela docelowa

Name       Address          Phone         Website
Mr. One    First Address    45120354554   a@b.com
Ms. Two    Second Address   42874518933   
Mr. Three  Third Address    74125986538   e@a.com
Mr. Four   Fourth Address   95645740200   

Przepraszam, jeśli trudno to zrozumieć. Naprawdę nie wiem, jak to ująć, więc zadaj dowolne pytanie!
Z góry dziękuję!


Operacja ta nazywa się „lewym złączeniem” w żargonie bazy danych. Nie wiem, czy jest to możliwe bezpośrednio w Numbers, ale może przynajmniej znajomość tego terminu może pomóc w lepszym wyszukiwaniu.
shadowtalker,

W rzeczywistości uważam, że najbardziej niezawodnym rozwiązaniem byłoby wyeksportowanie arkuszy kalkulacyjnych jako plików CSV, zaimportowanie ich do bazy danych (macOS jest wyposażony w już zainstalowany silnik bazy danych o nazwie SQLite), połączenie w bazie danych, a następnie wyeksportowanie pliku CSV w celu ponownego -import na liczby.
shadowtalker,

Pracuję jednak nad rozwiązaniem opartym tylko na liczbach. Czy to możliwe, że Addresskolumny nie zgadzają się między tabelami? Jeśli tak, jak chcesz sobie z tym poradzić?
shadowtalker,

Technicznie nie jest to możliwe, nie. Możliwe jest jednak to, że tabela nr 2 zawiera wielokrotnie ten sam wiersz. („taki sam” jak w tej samej namekolumnie)
LinusGeffarth

Właściwie nie miałbym nic przeciwko usuwaniu tych samych kolumn, z wyjątkiem nameoczywiście kolumny i pozostawiając wszystkie kolumny, które zawiera tabela nr 2, ale tabela nr 1 nie.
LinusGeffarth

Odpowiedzi:


5

Dokonajmy pewnych założeń:

  1. Jedyną kolumną w tabeli 2, na której Ci zależy, jest Website
  2. Wszystkie dane w obu Namekolumnach są w 100% poprawne i można je dopasować „dokładnie” (tzn. Nie budzi wątpliwości)
  3. Kolumny są oznaczone wierszem „nagłówek” (domyślnie ciemnoszare tło)
  4. Tabele są nazwane Table 1iTable 2
  5. Dane zaczynają się w wierszu 2w obu tabelach

Dlatego po prostu weźmiemy pożądane wartości z Table 2::Website(zapis formuły liczb Mac dla „Kolumny Websitew Table 2”) i wprowadzimy je Table 1::D.

Jest to w rzeczywistości bardzo łatwe do zrobienia i jest to jedna ze standardowych sztuczek w arkuszu kalkulacyjnym, którą świetnie mieć w tylnej kieszeni. Wyszukiwanie w Internecie czegoś takiego jak „index match excel” i „vlookup excel” da ci mnóstwo wyników.

Uwaga dla użytkowników Microsoft Excel i Arkuszy Google : pisz !zamiast ::i wstawiaj cudzysłowy 'wokół dowolnej nazwy tabeli ze spacjami. Powinien być taki sam wynik.

Rozwiązanie 1 (ogólna technika)

W pierwszym rzędzie Table 1::Websiteumieść tę formułę:

=IFERROR(INDEX(Website, MATCH(A2, Table 2::Name, 0), 1), "")

Niestety, ponieważ Numbers uważa, że ​​jest mądrzejszy od ciebie, nie pozwoli mi to wkleić - najwyraźniej będziesz musiał go wpisać ręcznie. Następnie kliknij i przeciągnij żółtą kropkę na dole komórki aż do dołu.

Rozpakujmy to od środka.

MATCH

Oficjalna dokumentacja: http://help.apple.com/functions/mac/7.0/#/ffa59a83d3

MATCH przyjmuje następujące argumenty:

  1. Wartość do wyszukania
  2. Zakres wartości do przeszukania
  3. Tryb szukania"

i zwraca pierwszą pozycję (1, 2, 3 itd.) w # 2, która odpowiada wartości w # 1. Dokumentacja zawiera więcej informacji na temat argumentu 3, ale 9 razy na 10 będziesz chciał ustawić go na 0,

INDEX

Oficjalna dokumentacja: http://help.apple.com/functions/mac/7.0/#/ffa59b4edb

INDEX przyjmuje następujące argumenty:

  1. Zakres komórek do wyboru
  2. Wiersz w tym zakresie do wyboru
  3. Kolumna w tym zakresie do wyboru
  4. Numer obszaru do użycia w wybranej komórce

Chcemy wybierać spośród Table 2::Website, więc to właśnie idzie do # 1. Wynik MATCHpowyższego połączenia daje nam numer wiersza, który chcemy, więc przechodzi do # 2. W tym zakresie jest tylko jedna kolumna, więc wiemy, że chcemy wstawić 13. Jeśli pominięto # 4, domyślnie jest to 1. Nie martw się tym, po prostu to pomiń.

IFERROR

Oficjalna dokumentacja:

IFERROR przyjmuje następujące argumenty:

  1. Wartość do sprawdzenia pod kątem błędów
  2. Wartość zastępcza w przypadku błędu

Ten jest oczywisty. Jeśli INDEXzawiedzie, spowoduje błąd. Użyj tego, aby zamienić te błędy na puste (lub coś innego, jeśli chcesz).

Rozwiązanie 2 (skrót)

Możesz uprościć to zapytanie za pomocą funkcji skrótu:

=IFERROR(VLOOKUP(A2, Table 2::Name:Website, 3, 0), "")

To robi „pionowo wyszukuje” A2w zakresie Table 2::Name:Websitei zwraca wartość w kolumnie, 3która z wiersza, który znalazł. Na 0końcu określa się dokładne, a nie przybliżone dopasowanie. IFERRORCzęść jest identyczna.


Dang. Weź mój głos za wysiłek. Zajmę się później i dam ci znać, czy to działa dla mnie. Z góry dziękuję!
LinusGeffarth

Tak więc zaczynamy. Nie mogę uzyskać rozwiązania nr 1, żeby jakoś działało. Zobacz mój zrzut ekranu , czy coś jest nie tak? (Właśnie zmieniłem nazwę Websitena Status) Rozwiązanie nr 2 jednak działa dla mnie. Dzięki!
LinusGeffarth

1
@LinusG. cieszę się, że # 2 zadziałało. Wygląda na to, że masz niepoprawną wartość w trzecim argumencie do MATCH.
shadowtalker

rozwiązanie 1 działało dla mnie świetnie
tatiana_c
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.