wypełnij wartości w programie Excel zgodnie z datami


1

Mam wyzwanie w programie Excel 2010. Mam listę identyfikatorów z następującymi zmiennymi: data_wydania, wartość skumulowana, termin zapadalności. Każdy identyfikator ma inną datę emisji i datę zapadalności, ale wszystkie znajdują się w przedziale (okresie analizy) od 2 stycznia 2007 r. Do 23 grudnia 2011 r. Krótki przykład poniżej:

Identyfikator ma 3 różne wartości: jedna dla 2 stycznia 2007 r. (Wartość: 1000); kolejny na 5 maja 2007 r. (wartość: 1500) i ostatni na 4 grudnia 2007 r. (wartość: 2700). Chcę, aby ten identyfikator miał zduplikowane wartości skumulowane przez czas jego aktywności.

Tak więc w tym przypadku w okresie od 2 stycznia 2007 r. Do 4 maja 2007 r. Wartość będzie wynosić (1000); następnie w okresie od 5 maja 2007 r. do 3 grudnia 2007 r. wartość wyniesie 1500; ostatecznie w okresie od 4 grudnia 2007 r. do terminu zapadalności (powiedzmy 3 marca 2010 r.) wartość pozostanie na poziomie 2700.

To dla mnie trudne wyzwanie, ponieważ mam 355 różnych identyfikatorów. Niektóre identyfikatory mają unikalne wartości, co oznacza, że ​​ich skumulowana wartość będzie replikowana do dat zapadalności. Istnieją jednak inne identyfikatory, które mają różne wartości skumulowane (w różnych datach), które należy odpowiednio ułożyć.

Ostatecznym wynikiem będzie zestaw kolejnych dat między 2 stycznia 2007 r. A 23 grudnia 2011 r. (W kolumnach), a następnie odpowiednio 355 wierszy danych. Mogę wysłać krótki przykład w programie Excel, jeśli konieczne jest lepsze zrozumienie żądania.


Jakie pola mają mieć wynik? ID, data_początkowa, data_końcowa, wartość?
Excellll,

Odpowiedzi:


2

Aby to zrobić, musisz trochę masować swoje dane przed utworzeniem matrycy.

  1. Posortuj dane według IDi issue_date(od A do Z) w tej kolejności lub priorytecie.
  2. Dodaj kolumnę end_date. Wartość end_datebędzie wcześniejsza od terminu zapadalności tego rekordu i na jeden dzień przed następną datą emisji dla tego konkretnego identyfikatora. Zakładając, że IDjest w kolumnie A, issue_datejest w kolumnie B i maturity_dateznajduje się w kolumnie D, wprowadź następującą formułę dla end_datepierwszego rekordu. Wypełnij.

    =TEXT(IF(A3=A2,MIN(B3-1,D2),D2),"mmm d, yyyy")

    wprowadź opis zdjęcia tutaj

  3. Na innym arkuszu utwórz szkielet swojej matrycy. Utwórz etykiety kolumn, wstawiając pierwszą datę, a następnie wypełniając do końca. Możesz uzyskać etykiety wierszy, wykonując zaawansowany filtr unikatowych rekordów na identyfikatorach w tabeli.

  4. W lewej górnej komórce macierzy (B3 w tym przykładzie) wprowadź następującą formułę. „Surowy” to nazwa arkusza z oryginalnymi danymi.

    =SUMPRODUCT(Raw!$C$2:$C$23,--(Raw!$A$2:$A$23=Matrix!$A3),--(DATEVALUE(Raw!$B$2:$B$23)<=Matrix!B$2),--(DATEVALUE(Raw!$E$2:$E$23)>=Matrix!B$2))

    Wypełniaj w górę iw dół, aby wypełnić swoją matrycę. Zwróci wartość identyfikatora w tym dniu i 0, jeśli nie będzie dostępnych danych dla tej daty.

    wprowadź opis zdjęcia tutaj

SUMPRODUCT () jest jedną z najmniej intuicyjnych, ale najbardziej przydatnych funkcji w programie Excel. Zasadniczo pomnoża odpowiednie wartości z każdego argumentu tablicy, a następnie sumuje te produkty. W tym przypadku tablice to skumulowane wartości z tabeli oraz tablice 0 i 1, które wskazują, czy kryterium zostało spełnione. Dlatego tylko wartość, dla której wszystkie kryteria są spełnione, będzie miała niezerowy produkt. Ponieważ tylko jeden rekord powinien spełniać wszystkie kryteria, suma będzie równa tej wartości.

Używam tutaj dat jako tekstu, ale te formuły powinny działać również dla dat sformatowanych jako daty w Excelu. TEXT()I DATEVALUE()bity są przesadą w tym przypadku, ale wszystko powinno działać tak samo.


Dziękuję za odpowiedź Excellll. Potrzebuję definitywnie podanej sugestii end_date. Kilka drobnych wyjaśnień. Nie mam zduplikowanych identyfikatorów jako wierszy 6-7 i wierszy 9-10. Tabela wyjściowa jest w porządku, ale wtedy poproszę cię o radę: mój początkowy plan miał mieć w kolumnach daty od 1 stycznia 2007 do 23 grudnia 2011, następnie wiersze będą miały 1-355 (dla moich różnych identyfikatorów). Żądanie FILL sugerowało (zgodnie z twoim przykładem), że ID 1 będzie miał 900 od apr3008 do apr1209 (pod każdą odpowiednią kolumną daty), a następnie 1300 od apr1309 do apr1310 itd. Więc moje początkowe dane wyjściowe to macierz z datami, identyfikatorami i wartościami
Rodrigo Briceño

Porada? Chciałem uzyskać wynik w stylu macierzy, ponieważ mam zestaw różnych wartości (inny zestaw danych) w tym samym formacie: identyfikatory w wierszach, daty w kolumnach, których mogę użyć do utworzenia ilorazu. Czy uważasz, że sugerowane dane wyjściowe można połączyć z tym zestawem danych w innym stylu? Czy mogę wysłać ci krótki zestaw danych? wyrażenie żądania tylko tekstem jest bardzo skomplikowane.
Rodrigo Briceño

Trudno mi zrozumieć twoją prośbę. Bardzo by mi pomógł, gdybym mógł zobaczyć dane. Prawdopodobnie najłatwiej byłoby po prostu zrobić zrzut ekranu ze swoimi danymi i jak chcesz wyglądać. Jeśli nie możesz opublikować tutaj zdjęcia (z powodu niskiej liczby powtórzeń), możesz zamiast tego opublikować link do zrzutów ekranu.
Excellll,

@ RodrigoBriceño Ah, przy pomocy kilku pomocnych zmian (nie moich), myślę, że rozumiem, o co ci teraz chodzi. Widzę, że przegapiłem znak, ale moja odpowiedź prowadzi cię do połowy. Postaram się znaleźć czas na edycję i dam pełne rozwiązanie wkrótce.
Excellll,

@ RodrigoBriceño Opublikowałem nową odpowiedź.
Excellll,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.