Czy istnieje funkcja, która powie, czy określona komórka ma zwykłą (ręcznie wprowadzoną) wartość lub formułę?
google-sheets
formulas
epeleg
źródło
źródło
isFormula2("A1")
. więc próbowałem utworzyć nową wersję tego typu:function isFormula2(cell) { return (cell.getFormula())!=""; }
i spodziewałem się, że będzie można go wywoływać przy użyciu,isFormula2(A1)
ale wydaje się, że to nie działa, a przy próbie debugowania pokazuje sięcell
jako niezdefiniowany ... każdy pomysł, dlaczego tak jest i czy mogłoby być inaczej zmienione, więc będzie działaćf(A1)
zamiastf("A1")
?isFormula(a1)
? (w MS Excel jest to funkcja, która pobiera parametr zakresu)Krótka odpowiedź
Użyj wbudowanej funkcji ISFORMULA () .
Tło i objaśnienie
Myślę, że właśnie odkryłem nieudokumentowaną formułę w nowych Arkuszach Google. @Pnuts powiedział, że
CELL
formuła nie działa (częściowo dlatego, że jest dostępna tylko w nowych Arkuszach Google), więc skopiowałem kod do nowego Arkusza Google. Wystąpił błąd, mówiąc, że moja (niestandardowa) formuła akceptuje tylko jeden argument, a nie dwa:Zmiana nazwy
isFormula
na coś innego spowodowała działającą funkcję niestandardową. Po tym stworzyłem jeszcze jeden Arkusz Google i użyłemisFormula
formuły. Formuła nie pojawia się w autouzupełnianiu, ale działa:Jeśli więc formuła jest dostępna w nowych Arkuszach Google, to byłaby to najlepsza odpowiedź:
Formuła
Uwaga
Dostępne tylko w nowych Arkuszach Google. Poprosiłem kilka innych osób o potwierdzenie nowej formuły i jest ona potwierdzona. Ponieważ jest to nieudokumentowane, jego implementacja jest niepewna i może zniknąć.
ARRAYFORMULA
Nie działa w przypadku korzystania z tej nowej formule.Przykład
Stworzyłem dla ciebie przykładowy plik: isFormula
źródło
Wygląda na to, że Google ma ukrytą wbudowaną funkcję
ISFORMULA()
. Zdałem sobie sprawę, kiedy usunąłem własną funkcję i nadal działałem. Wypróbowałem to w nowym arkuszu kalkulacyjnym i nadal działa. Brak problemu z pamięcią podręczną.źródło