Mam arkusze Excela (format csv) od różnych klientów, gdzie pierwszy wiersz wszystkich arkuszy zawiera nazwy kolumn. Jednak kolejność i liczba kolumn w każdym arkuszu może być inna. Podam przykład minimalny:
Arkusz roboczy A
cpu, memory, disk, printer
xxx, xxxxxx, xxxx, xxxxxxx
Arkusz roboczy B
network, cpu, memory, mouse
yyyyyyy, yyy, yyyyyy, yyyyy
Chcę więc, aby arkusze A * i B * zachowywały tylko te kolumny, które są wspólne zarówno w A, jak iw B. Tak więc przecięcie A i B w odniesieniu do nazw kolumn przy zachowaniu poprzednich wartości.
Arkusz roboczy A *
cpu, memory
xxx, xxxxxx
Arkusz roboczy B
memory, cpu
yyyyyy, yyy
Jakieś pomysły, jak to osiągnąć w programie Excel? Każda pomoc lub wskaźniki będą bardzo mile widziane :)
Odpowiedzi:
Aby to zadziałało, musisz użyć wiersza pomocnika. Skonfigurowałem przykład taki sam, jak ten, który wysłałeś. W arkuszu 1 mam twoją pierwszą listę, arkusz2 twoją drugą, a arkusz3 będzie zawierał pożądane wyniki.
Dla arkusza 1: Ta formuła wygląda w arkuszu2 dla dopasowania. Jeśli pasuje, wyświetla indeks, tworząc zamówienie.
Formuła dla kolumny A musi być inna, ponieważ jest pierwszą:
Po wykonaniu tej czynności mamy liczby poniżej kolumn, w których znajduje się dopasowanie i zamówienie.
Na koniec musimy po prostu przechwycić wartości za pomocą liczby, więc w arkuszu3 ustawimy liczby w górnym wierszu, a następnie skorzystamy z tej formuły, aby wyszukać nazwy:
Te z błędem w nich oznaczają po prostu, że znaleziono najwyższy numer, więc oczywiście odrzuć te.
źródło