Dziwne, że tego nie widziałem, ponieważ Excel wydaje się być poprawnym językiem do gry w golfa kodu (mimo że jego kompilator nie jest darmowy).
Excel jest nieco dziką kartą w golfie, jest dobry w golfowych wyzwaniach o średniej złożoności, a czasem także w prostszych wyzwaniach. Najczęściej Excel doskonale radzi sobie z wyzwaniami związanymi z manipulowaniem ciągami i mieszanymi liczbami.
Jakie masz ogólne wskazówki dotyczące gry w golfa w programie Excel? Szukam pomysłów, które można zastosować do ogólnych problemów z kodowaniem golfa, które są przynajmniej nieco specyficzne dla programu Excel (NIE VBA). Proszę, jedna wskazówka na odpowiedź.
Odpowiedzi:
Skrót referencyjny:
Jeśli twój program wymaga wielu danych wejściowych, możesz chcieć mieć je wszystkie na raz. aby odczytać wiele komórek jako tablicę, można zrobić tak jak w przykładzie:
Przykład:
=len(A1)+Len(B1)+LEN(C1)
może być
=SUM(LEN(A1:C1))
=SUM(LEN(A1:C1 A2:C2 A3:C3))
możliwe
=SUM(LEN(A1:C3))
=SUM(LEN(A1:A1024))
możliwe
=SUM(LEN(A:A))
=SUM(LEN(A:A B:B C:C))
możliwe
=SUM(LEN(A:C))
źródło
Skrócony skrót:
CONCATENATE
Funkcja może być zastąpiony przez&
symbol 100% czasu tak długo, jak pierwszy argument jest łańcuch, lub komórki.przykład:
=CONCATENATE(A1,B1)
może być skrócony do
=A1&B1
źródło
Wektoryzacja za pomocą tablic
Ilekroć funkcja przyjmuje tablicę jako argument zamiast singletonu, funkcja ta również wyśle tablicę z wartością wynikową do odpowiednich indecies.
Przykład:
=LEN(A1)+LEN(B2)+LEN(C3)
można zastąpić
=SUM(LEN({A1,B2,C3}))
źródło
Konwertowanie liczby na tekst:
To bardzo prosta wskazówka, ale może być przydatna dla niektórych ...
1&23
.).A1
), Zmień Format liczbowy komórki na Tekst, aby wyeliminować potrzebę dodatkowych bajtów.Skrócona tabela referencyjna:
źródło
Wektoryzacja tablic komórek:
Wskazówka Wektoryzacja za pomocą tablic Pokazuje, jak można zagrać w golfa w funkcji za pomocą tablicy, używając określonego formatowania w tablicy. To samo można zrobić z komórkami i na dłuższą metę zaoszczędzisz wiele bajtów. Powiedz, że masz następujący arkusz:
I chcemy znaleźć najwyższy okres przechowywania owoców.
Bez wektoryzacji można użyć dwóch takich formuł:
I to daje poprawną odpowiedź, ale Wynik dla tego golfa jest niekonwencjonalny i prawdopodobnie nie zostanie zaakceptowany tak szeroko. Ponadto wykorzystuje funkcję przeciągania (Ew), co stanowi mylącą odpowiedź.
Zamiast tego możemy umieścić funkcję w kolumnie D bezpośrednio w formule w E2. Aby to zrobić, zamień (w tym przypadku B2 i C2) zmienne na tablice dla zakresu, który chcesz przetestować. W ten sposób twoja formuła staje się:
Pozwala to zaoszczędzić kilka bajtów, a także zapewnić poprawną ocenę wyników.
źródło
Skrót boolowski:
Zamiast korzystać z funkcji
=TRUE()
i=FALSE()
, użyj=1=1
i=1=2
.źródło
ISBLANK () Stenografia:
Zamiast używać
=ISBLANK(A1)
użyj,=A1=0
aby ustalić, czy komórka (tj.A1
) Jest pusta.Uwaga: ten skrót nie będzie działać, jeśli komórka
A1
zawiera0
. W takim przypadku będziesz musiał użyć=A1=""
.źródło
Skróć nazwy arkuszy
Jeśli zmienisz nazwę
Sheet2
na,S
wtedy odniesienia będąSheet2!a0
się zmieniaćS!a0
.źródło