Ok, więc mam plik programu Excel z kilkoma tabelami, takimi jak ten na obrazku i pod linkiem poniżej.
https://www.dropbox.com/s/967glpkyfjfb6iy/Test.xlsx?dl=0
Usiłuję wprowadzić wartość z zakresu D2: N21 i zwrócić odpowiednią wartość komórki w kolumnach B i D oraz datę z rzędu 1 i wyświetlić je w komórkach B26 , C26 i D26 , odpowiednio.
Próbowałem używać formuł INDEX MATCH, ale wydaje mi się, że nie mogę go uruchomić. Zakładam, że czegoś mi brakuje. Każda pomoc byłaby bardzo mile widziana.
microsoft-excel
SeanM_NB
źródło
źródło
Odpowiedzi:
To może być wykonane bez użycia VBA. Wymaga to jednak więcej niż tylko funkcji wyszukiwania / odniesienia, ponieważ działają one tylko w jednym wymiarze (podobnie jak większość innych funkcji).
SUMPRODUCT()
to jedna funkcja, która działa z tablicami dwuwymiarowymi (którą można wygenerować za pomocą prostego porównania).Rozwiązanie wymaga tylko dwóch następujących wzorów:
Formuła 1 Wprowadzony
B26
i wpisany / wciśnięty z wciśniętym klawiszem Ctrl doB26:C26
:Formuła 2 Wprowadzono
D26
:Wstępnie zatwierdzona wersja formuły 2 to:
Zauważ, że jeśli kwoty w dolarach w tabeli były unikalne, można zastosować mniej złożoną formułę. Ponieważ nie określiłeś, co chcesz zrobić, gdy zostaną znalezione duplikaty, napisałem najprostszą formułę, która nadal działa, gdy zostaną znalezione.
Tak się składa, aby wyodrębnić najbardziej pasującą do lewej wartość w dolnym wierszu zawierającym dopasowanie. Można go zmodyfikować, aby zwracał określone wartości alternatywne.
Poniższej formuły można użyć do wykrycia, czy istnieją duplikaty w tabeli dla wprowadzonej wartości
A26
, jeśli wymagane jest pewne powiadomienie / działanie:W przypadku wartości unikalnych
MAX()
funkcja we wzorze 1 nie byłaby już oczywiście wymagana, a uproszczona formuła 2 byłaby:Uwagi:
($1:$1)
w gotowej wersji są wymagane do wymuszenia$1:$1
pozostania na własnej linii.#N/A
błędu, jeśli nie można znaleźć wprowadzonej kwoty w dolarach, można to zmienić na cokolwiek innego.źródło
Myślę, że wszystkie funkcje wyszukiwania / referencji przeszukują kolumny lub wiersze. Chciałbym użyć „funkcji niestandardowych”, które są funkcjami VBA wchodzącymi w moduł. Potrzebujesz 3, jeden dla B26, C26 i D26. Oto jeden dla D26 (data). W D26 miałbyś „= zDate (A26)”. Moduł:
EDYCJA: Cóż za niesamowita odpowiedź od @robinCTS. Zamierzam kupić książkę towarzyszącą. Zostałem przeniesiony do tworzenia
ale nie sprawdza duplikatów i nie rozumiem formatu „$ bbbnn.nn”. W moim przypadku A26 musiałby zawierać „$” i spacje. Dzięki
źródło
A26
nie można znaleźć wartości w . Twoja formuła zwraca datę w kolumnieD
, co powoduje, że inne formuły wyzwalają ostrzeżenie o odwołaniu cyklicznym (lub nie, jeśli dozwolone są obliczenia iteracyjne) iB26:C26
zachowują poprzednie wartości wyszukiwania. I oczywiście zwróciłoby to nieprawidłowe / niedopasowane wyniki dla dups, jak sugerowałeś. Formuła rzeczywiście ma pracować bez wprowadzając$
i przestrzenie, jak to tylko tam ze względu na format numeru rachunkowości stosowanych dla komórek danych.