Mam tabelę z kolumną wejściową i skonfigurowałem dwie tabele z dopuszczalnymi wartościami wejściowymi. Prawidłowa tabela zależy od wartości w komórce na końcu każdego wiersza. Aby ustalić, która tabela jest dozwolona, skonfigurowałem formułę sprawdzania poprawności danych (jak =if cellatendof row>0, table1, table2
). Próbowałem przeciągnąć sprawdzanie poprawności danych w dół, ale nie użyłoby ono względnego odwołania do komórki, którą musi sprawdzić. Tak więc ręcznie wszedłem do każdej komórki w kolumnie i zaktualizowałem formułę sprawdzania poprawności danych, aby sprawdzić komórkę dla tego konkretnego wiersza (jak =if cellatendofrow1>0... then next =if cellatendofrow2>0
...).
To działa, ale nie pozwoli nikomu dodawać ani usuwać wierszy - ani nawet sortować danych - bez wyłączania formuły sprawdzania poprawności danych. Zamiast wskazywać na nową lokalizację komórki, wskazuje na oryginalny wiersz zakodowany na stałe. Więc jeśli wiersz zostanie dodany, teraz wiersz 1 został przeniesiony do wiersza 2, ale formuła nadal patrzy na, cellatendofrow1
ponieważ została tak zakodowana na stałe, podobnie jak wszystkie pozostałe wiersze, a wyniki prawdopodobnie będą nieprawidłowe.
Czy istnieje sposób, aby refernność była względna, a nie statyczna i poruszać się z resztą rzędu?
Przykro mi, że mówię, że nie znam VB - ale mogę spróbować, aby to naprawić!
źródło
A99
,A$99
,$A99
lub$A$99
?Odpowiedzi:
Jeśli flaga tabeli jest wypowiedziana w
ColumnC
(zawsze!), Formuła pokazana poniżej wydaje się działać (przy użyciu nazwanych zakresów):źródło