W programie Excel chciałbym wygenerować dynamiczną tabelę opartą na wartościach w innej komórce.
Nigdy wcześniej tego nie robiłem, więc nie znam terminologii ani technik. Nie jestem również pewien, czy Excel jest w stanie osiągnąć to, czego chcę.
Oto, co chciałbym zrobić:
1 - Wpisuję wartość do komórki obok Sum
(tutaj $100
).
2 - Następnie dystrybucji procent do 100% A
, B
, C
, D
:
[Table 1]
|------|--------------|
| Sum | $100 |
|------|--------------|
|------|--------------|
| Unit | Distribution |
|------|--------------|
| A | 0.5 |
|------|--------------|
| B | |
|------|--------------|
| C | |
|------|--------------|
| D | 0.5 |
|------|--------------|
A
i D
ma po 50% B
i C
ma 0%. Powyższa struktura tabeli powinna być zawsze taka sama.
Teraz chciałbym automatycznie wygenerować drugą tabelę dynamicznie, na podstawie wprowadzonych wartości komórek w tabeli 1, co daje wynik:
[Table 2]
|------|--------------|
| Unit | Value |
|------|--------------|
| A | $50 |
|------|--------------|
| D | $50 |
|------|--------------|
Przez dynamiczne generowanie tabeli mam na myśli, że tylko wartości A
i B
są generowane, podczas gdy C
i D
nie są generowane, ponieważ ich wartości rozkładu wynosiły 0%.
Z drugiej strony inna dystrybucja wygenerowałaby inną tabelę:
[Table 1]
|------|--------------|
| Sum | $100 |
|------|--------------|
|------|--------------|
| Unit | Distribution |
|------|--------------|
| A | 0.75 |
|------|--------------|
| B | |
|------|--------------|
| C | 0.125 |
|------|--------------|
| D | 0.125 |
|------|--------------|
[Table 2]
|------|--------------|
| Unit | Value |
|------|--------------|
| A | $75 |
|------|--------------|
| C | $12.50 |
|------|--------------|
| D | $12.50 |
|------|--------------|
Dlaczego chcę dynamicznie generować tabelę 2: Ponieważ w rzeczywistości mam dużą liczbę potencjalnych „jednostek” do dystrybucji, z pewną różną arytmetyką, i chcę jedynie uzyskać spójnie ułożony wynik, który ma wartości> 0 $. Skopiuję / wkleję te dane do mojej aplikacji księgowej.
Pytania :
1) Jaka jest prawidłowa „terminologia” i „techniki” do tego, co próbuję osiągnąć? Proszę o to, aby móc znaleźć zasoby online, na wypadek, gdyby nikt nie mógł mi pomóc w konkretnym przypadku użycia. Czy używam czegoś takiego jak tabele przestawne, zakresy dynamiczne itp.? (Nie mam z nimi doświadczenia) . Byłbym bardzo wdzięczny za jak najwięcej szczegółów.
2) Najlepszy przypadek, czy możesz mi nawet pomóc w rozwiązaniu problemu dla powyższych potrzeb? Jeśli nie w pełni, czy są jakieś pewne narzędzia i / lub formuły Excela, o których powinienem wiedzieć (coś w rodzaju dynamicznych tabel filtrujących dla wartości> 0)?
źródło
=B$1 * B5
:, wypełnione w tabeli 2 powinny działać (przy założeniu obliczenia.=IF(B$1&B5>0, B$1*B5,"")
chociaż w tym momencie jestem coraz mniej pewien, czego chcesz. Możesz sprawdzić to się więc wszyscy możemy być pewni, że mówimy o tym samym.Odpowiedzi:
OP tutaj - byłem w stanie sprawić, że ta praca jest teraz całkiem OK, dlatego dołączam moje „rozwiązanie” w celach informacyjnych. Nie jestem jednak pewien, czy to najlepsze podejście.
Utworzyłem dwie tabele z obliczeniami z tabeli 2 w oparciu o odpowiednie formuły z tabeli 1.
Następnie dodałem filtr do tabeli 2, wyświetlając tylko wiersze o wartości większej niż 0 na podstawie komórek w odpowiedniej kolumnie. Aby dodać filtr, naciśnij strzałkę w dół kolumny tabeli, według której chcesz filtrować.
To odfiltrowuje wiersze, które mają puste wartości; jednak nie aktualizuje dynamicznie filtrowania po zmianie danych w tabeli 1.
Aby dynamicznie aktualizować tabelę 2 na podstawie danych wejściowych z tabeli 1, zapisałem plik jako plik Excel z obsługą makr (Zapisz jako> Skoroszyt z obsługą makr Excel, .xlsm) i dodałem kod VBA z tej odpowiedzi: https: //superuser.com/a/501736/455679
Aby dodać kod VBA, kliknij prawym przyciskiem myszy Arkusz na dolnym pasku programu Excel (zwykle Arkusz1 ), a następnie kliknij polecenie Wyświetl kod z menu kontekstowego. Następnie wklej i zapisz następujący kod, gdzie
Table2
powinna być nazwa faktycznie filtrowanej tabeli:Wartości niefiltrowane:
Wartości filtrowane dynamicznie:
Zauważ, że z powodu filtrowania wierszy Tabela 1 i Tabela 2 nie powinny dzielić tych samych wierszy - ponieważ mogłoby to odfiltrować tabelę 1 na podstawie jej własnych wartości.
źródło