DGET с несколькими (составными) ключами возвращает #NUM!ошибка - PullRequest
0 голосов

Какова логика функции DGET с несколькими критериальными клавишами? Я сделал два небольших примера для исследования:

Случай 1: мы получаем значение только по ключу типа Дата - он работает нормально.

enter image description here

Случай 2: те же данные, но мы добавляем ключ типа String. Здесь мы имеем ошибку!

enter image description here

Согласен, в столбце B есть 2 строки "М000001735" (поле "Инв"). Но есть также 2 ключа, чтобы получить уникальный ряд в этом случае. Что случилось? Могу ли я использовать функцию DGET для составных клавиш ?

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

Таблица должна не содержать дубликаты. Если есть дубликаты, вы должны удалить их с помощью функции UNIQUE или SORT, которую вы можете использовать в DGET. Потому что, если есть несколько совпадений, DGET вернет ошибку. Формула DGET возвращает ошибку #VALUE!, если критерий не совпадает. Таким образом, вы должны обернуть формулу Google Sheets DGET в IFERROR. Дубликаты в столбце критериев / поиска не допускаются. Это вызывает #NUM! ошибку в DGET.


если вы запустите: ={{1;2}\{3;4}}

или запустите это созвездие: ={{1\3};{2\4}}

вы получите тот же результат, который означает, что любой из них будет работать:

=DGET(A:C; "Рабочее место"; {{"Инв" \ "Дата"}; {"М000001735" \ DATE(2019; 2; 15)}})

=DGET(A:C; "Рабочее место"; {{"Дата"; "Инв"}; {DATE(2019; 2; 15); "М000001735"}})

=DGET(A:C; "Рабочее место"; {{"Инв"; "М000001735"} \ {"Дата"; DATE(2019; 2; 15)}})

0

демонстрационная таблица

примечание: убедитесь, что вы используете русский язык в настройках электронной таблицы

_____________________________________________________________

альтернативы DGET:

=QUERY(A:C; "select C where A = date '2019-2-15' and B = 'М000001735'"; 0)

=FILTER(C:C; A:A=DATE(2019; 2; 15); B:B="М000001735")

=VLOOKUP(VLOOKUP(DATE(2019; 2; 15); A:B; 2; 0); B:C; 2; 0)

0 голосов
/ 09 июня 2019

Помогает, если OP объясняет, чего они пытаются достичь (а также с какой проблемой они столкнулись и где, выборку данных в текстовом формате и т. Д.).

Пожалуйстаtry:

=DGET(A$1:C;"Рабочее место";{{"Инв";"M00001735"}\{"Дата";DATE(2019;2;15)}})

Ваш разделитель по умолчанию - ;, следовательно, в вашем случае это не служит для горизонтального размещения массивов.

...