Страницы: 1
RSS
Получить список значений диапазона, которые не принадлежат значениям другого диапазона
 
Здравствуйте, имеется потребность получить выпадающий список с уникальными значениями - но никак не могу придумать как производить сравнение, а столбике А находится список всех значений, а в столбике В список использованных значений, как в столбике С получить список не использованных значений ?

По традиции гуглик )
https://docs.google.com/spreadsheets/d/1rUdJHiC0ml7vObG-R9Sz9pV0JMEWosndWHmgD3xxC94/edit#gid=1836478...

ну и файл прилагаю )
Изменено: zamunyk - 19.12.2018 02:29:03
 
Цитата
как в столбике С получить список не использованных значений ?
Активируйте "Лист3" и выполните макрос (без перебора значений):
Код
Sub qq()
    Dim x As Range, a(): Application.ScreenUpdating = False
    Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Copy [C2]
    a = Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row).Value
    [C:C].AutoFilter Field:=1, Criteria1:=Application.Transpose(a), Operator:=xlFilterValues
    Set x = Intersect(ActiveSheet.UsedRange, Rows("2:" & Rows.Count), [C:C].SpecialCells(12))
    [C:C].AutoFilter: If Not x Is Nothing Then x.Delete xlUp
End Sub
Пример во вложении.
Изменено: SAS888 - 19.12.2018 08:29:57
Чем шире угол зрения, тем он тупее.
 
Доброе время суток
Цитата
SAS888 написал:
и выполните макрос
Коллега не поможет, ТС же для
Цитата
zamunyk написал:
гуглик
заказал ;)
Тут другой код будет
Код
function getNotUsed(existed, used) {
  const keys = used.reduce(function(keyList, item) {keyList[item[0].toString()] = null; return keyList;}, {}); 
  return existed.filter(function(item) {return !(item[0].toString() in keys);});
}

Использование в C2 вводим =getNotUsed(A2:A334;B2:B334)
 
Цитата
Тут другой код будет
Да. Конечно. Извиняюсь за невнимательность...
Чем шире угол зрения, тем он тупее.
 
zamunyk, уточните название темы. Модераторы заменят
 
Цитата
vikttur написал:
уточните название темы
ТС заходил, но видимо решение уже не нужно, хотя я и формульную версию для spreadsheet по мотивам найденного в инете сделал :)
 
Цитата
Андрей VG написал:
ТС заходил, но видимо решение уже не нужно, хотя я и формульную версию для spreadsheet по мотивам найденного в инете сделал
Не не не, ну как бы да да, отвлекли от компа пришлось уйти в зацкат ))

Цитата
Андрей VG написал:
Использование в C2 вводим =getNotUsed(A2:A334;B2:B334)
То что нужно, спасибо большое !!! ))
 
zamunyk, а замечание модератора Вас не касается?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
А zamunyk скоро своим поведением бан заработает
 
Решение формулами
Код
=FILTER(A2:A334; ISERROR( MATCH(A2:A334; B2:B334; 0) ))

Господа модераторы, вариант названия темы.
Google Spreadsheet - как получить список значений диапазона, которые не принадлежат значениям другого диапазона?

Offtop.
Не пора ли ветку форума делать для Google таблиц? Или опять ответ будет - так вариант решения же может быть и только на совместимых формулах? :)
Страницы: 1
Наверх