Pracuję nad arkuszem kalkulacyjnym do planowania zapotrzebowań materiałowych (dla zabawy). Jednym z problemów są reguły dotyczące wielkości partii. Muszę używać funkcji OFFSET i INDIRECT w wielu miejscach, a formuły są niezwykle trudne do odczytania (i są długie!).
Czy jest jakiś sposób na umieszczenie tekstów formuł dla różnych reguł w tablicy i wybranie ich na podstawie WYSZUKAJ.PIONOWO? Mam nadzieję znaleźć funkcję, która wykonuje następujące czynności:
=FORMULAFROMTEXT(VLOOKUP(rule,$A1:$B5,formula, FALSE))
gdzie reguła może być jedną z „L4L”, „FOQ” itp., a tabela wyglądałaby tak
L4L L4L-formula
FOQ FOQ-formula
...
Dla mnie to wygląda na znacznie czystsze (i krótsze) niż
IF(rule="L4L",L4L-formula,IF(rule="FOQ",FOQ-formula,IF(...))).
microsoft-excel
użytkownik3697176
źródło
źródło
L4L-formula
a następnie po prostu przeglądał wynik.Odpowiedzi:
Musisz utworzyć funkcję za pomocą VBA.
Po otwarciu arkusza Excel uruchom Edytor Visual Basic, wykonując następujące czynności:
naciśnij Alt+ F11.
naciśnij FN+ ALT+F11
kliknij
Insert
potemModule
.Nowe okno modułu pojawi się po prawej stronie edytora Visual Basic.
Skopiuj następujące elementy do nowego okna modułu:
Możesz teraz zamknąć Edytor Visual Basic, ponieważ utworzyłeś teraz funkcję
EVAL(cell reference)
formuły.Teraz, aby użyć tej nowej funkcji podczas używania
VLOOKUP()
formuły.Jeśli formuła ma zostać zbudowana zgodnie z tym, w którym wierszu znajdują się dane, na przykład
i komórki
C1
iC2
jestL4L-formula
Następnie należy pamiętać o zmienności formuły. Na przykład nie możesz po prostu położyć A1 + B1
L4L-formula
. Musisz wpisać bez znaku równości (=)"B"&ROW()&"+C"&ROW()
dlaL4L formula
.Następnie musisz utworzyć kolumnę pomocniczą dla wynikowej formuły.
Jeśli lista formuł jest następująca:
Jeśli
L4L-formula
ma byćF + G
, to jak wskazano przed wejściem"F"&ROW()&"+G"&ROW()
do komórkiB1
Jeśli
FOQ-formula
ma byćF x G
, musisz wprowadzić dane"F"&ROW()&"*G"&ROW()
do komórkiB2
Teraz, jeśli twój stół roboczy znajduje się na tym samym arkuszu i wygląda następująco:
następnie wstaw do komórki
I1
i przeciągnij w dół:Kolumna
I
jest teraz kolumną pomocniczą, która tworzy wymaganą formułę dla tego wiersza. Możesz oczywiście ukryć tę kolumnę podczas drukowania (w razie potrzeby).Aby uzyskać wynik tej formuły, umieść go
=EVAL(I1)
w komórceJ1
i możesz również przeciągnąć w dół.źródło