Zwraca najstarszą datę spełniającą dwa kryteria

0

Usiłuję, aby komórka zwróciła wartość najstarszej daty, biorąc pod uwagę, że pasuje ona do nazwy sklepu (A5, do której odwołuje się formuła), a także sprawdza, czy zaległa jest pierwsza kolumna. Data jest przechowywana w kolumnie E na arkuszu Otwarte Zamówienia. Jakakolwiek rada?

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Preston
źródło

Odpowiedzi:

1

AGREGACJA może być dobrym rozwiązaniem. Może to być formuła, która będzie wykonywać obliczenia podobne do tablic, nie będąc rzeczywistą tablicą. Powodem, dla którego mówię, że jest, jest to, że tylko niektóre funkcje AGGREGATE wykonują obliczenia tablic ... 14 i 15 to dwie z nich. Innym powodem, który według mnie może być dobrą opcją, jest to, że wykonując obliczenia tablicowe, należy unikać używania pełnych odwołań do kolumn, takich jak F: F w obrębie tablicy. Może to spowodować wykonanie zbyt dużej liczby obliczeń nadmiarowych i może zapaść się w systemie. Obliczenia tablic powinny być rozsądnie ograniczone do danych, z którymi mamy do czynienia.

Przyjrzyjmy się funkcji AGGREGATE i jej częściom

AGGREGATE(function #, What to include #, Calculation, parameter)
  • Funkcje 14 i 15 posortują wyniki od największego do najmniejszego, podczas gdy drugi posortuje drugi kierunek
  • Co zawierać #, ma wiele opcji ignorowania ukrytych wierszy lub wyników, które powodują błędy. Zwykle używam 6, które ignorują błędy, ale obejmują resztę. Może być konieczne dostosowanie do własnych potrzeb.
  • Obliczenia to obszar, w którym chcesz umieścić informacje, których szukasz, i sprawdzić stan. Sprawdzanie warunków jest naprawdę funkcjami logicznymi, które zwracają PRAWDA lub FAŁSZ. Jeśli prześlemy je za pomocą operacji matematycznych, program Excel przekształci PRAWDA = 1 i FAŁSZ = 0. Jeśli więc agregacja jest ustawiona tak, aby ignorować błąd, a interesują Cię tylko informacje spełniające Twój warunek, podziel je przez warunki. Fałszywe warunki wygenerują błąd div przez 0, a funkcja agregująca zignoruje tę odpowiednią informację.
  • Parametr jest wartością opcjonalną dla niektórych funkcji, ale dla 14 i 15 informuje AGGREGATE, która pozycja w posortowanych wynikach wartości, którymi jesteś zainteresowany. Umieszczenie tutaj 1 zwróci najmniejszą lub największą liczbę w zależności od tego, czy używasz funkcji 14 lub 15.

SO dla twojej formuły zrobilibyśmy coś takiego:

=AGGREGATE(14,6,'Open POs'!E2:E100/(('Open POs'!A2:A100="Overdue")*('Open POs'!F2:F100=$A5),1)

JEŻELI to najwcześniejsza data, zmień 14 na 15. Dostosuj zakresy do swoich danych zamiast korzystać z pełnych odniesień do kolumn.

Zastrzeżenie: Twoje daty muszą być przechowywane jako czas w programie Excel, a nie ciągi znaków. Możesz to sprawdzić przez ISNUMBER (F4), gdzie F4 jest jedną z twoich komórek daty. Jeśli otrzymasz wynik false, twoje daty będą musiały zostać przekonwertowane.

Prześlij Ed
źródło
Dobra odpowiedź z samouczka (+1)
Student Gary'ego