Mam tabelę (w MySQL) z 3 kolumnami:
Location Category Supplier
A Computers Company X
A Printers Company Y
B Computers Company X
B Printers Company Y
B Software Company Y
C Computers Company Y
C Software Company Z
Teraz muszę zrobić matrycę zawierającą powyższe informacje, takie jak to:
Computers Printers Software
A Company X Company Y
B Company X Company Y Company Y
C Company Y Company Z
W końcu muszę to mieć w programie Excel.
W rzeczywistości mam zmienną liczbę kategorii, więc robienie tego w MySQL z łączeniem dla każdej kolumny nie jest dobrą opcją. Mógłbym napisać funkcję w PHP, ale zastanawiałem się, czy istnieje bardziej eleganckie rozwiązanie.
Szukałem tabel przestawnych w programie Excel, ale wydają się one odpowiednie tylko dla liczb jako wartości. Ale może coś pomijam, ponieważ sam nigdy nie pracuję z programem Excel.
microsoft-excel
pivot-table
sql
Dylan
źródło
źródło
Odpowiedzi:
Nie wiem, czy jest to tak „eleganckie”, jak się spodziewałeś, ale jesteś na dobrej drodze z pomysłem tabeli przestawnej. Musisz tylko trochę oszukać. „Kolumna pomocnika”, tabela przestawna i funkcja „vlookup” mogą być tutaj Twoimi przyjaciółmi.
Najpierw do oryginalnych danych dodaj kolumnę pomocniczą dla „DostawcaNumer”. Firma X = 1, Firma Y = 2, Firma Z = 3. Ustawiam kolumnę pomocnika jako pierwszą kolumnę, aby ułatwić jej użycie w późniejszym czasie w vlookup. Uwaga: dane znajdują się teraz w komórkach A5: D11.
Następnie przestaw dane w ten sposób. Użyłem opcji „klasyczny układ tabeli przestawnej” w zakładce „Wyświetlanie” okna dialogowego „Opcje tabeli przestawnej” (kliknij prawym przyciskiem myszy tabelę przestawną, aby wyświetlić to okno dialogowe).
Wybierz i skopiuj całą tabelę przestawną, a następnie „wklej specjalne / wartości” w innym miejscu z boku oryginalnej tabeli przestawnej. Następnie w treści kopii tabeli wprowadź pokazaną formułę. Zauważ, że formuła vlookup odnosi się z powrotem do oryginalnej tabeli przestawnej (odniesienie „H7” - patrz poprzedni schemat), a także do zakresu A5: D11 wspomnianego wcześniej.
Jak powiedziałem, nie jest elegancki, ale działa. Jest wielu inteligentnych ludzi, którzy przeglądają tę stronę, którzy prawdopodobnie znajdą dla ciebie „eleganckie” rozwiązanie!
źródło
Doszedłem do wniosku, że można całkowicie uniknąć tabeli przestawnej. Zobacz zrzut ekranu poniżej. Użyj kolumny pomocniczej. Zdefiniuj pokazane nazwane zakresy. Ustaw swój układ jak w G14: J18. W treści tabeli użyj WYSZUKAJ.PIONOWO z SUMPRODUCT.
źródło