Тем, что он не подходит. Если я напишу в одном столбце Hello hello Выделю столбец, нажму Данные - Дополнительно (появится окно Расширенный фильтр), затем выберу скопировать результат в другое место, жму Только уникальные записи и вуаля.. Остается только 1 запись Hello
Тем, что он не подходит. Если я напишу в одном столбце Hello hello Выделю столбец, нажму Данные - Дополнительно (появится окно Расширенный фильтр), затем выберу скопировать результат в другое место, жму Только уникальные записи и вуаля.. Остается только 1 запись HelloGuitarFan
Видео Ваше посмотреть не могу (ограничения на работе стоят), поэтому просто опишу последовательность действий: 1. Выделяете диапазон с заголовком; 2. Вкладка "Данные" - рядом с кнопкой "Фильтр" есть кнопочка поменьше "Дополнительно". Жмете на нее; 3. Если будет задавать вопросы, отвечаете "ОК"; 4. В появившемся окошке ставите галку "Только уникальные записи" и, по желанию, точку "Скопировать результат в другое место" (тогда указываете в третьем белом поле это самое место). Жмете ОК.
Видео Ваше посмотреть не могу (ограничения на работе стоят), поэтому просто опишу последовательность действий: 1. Выделяете диапазон с заголовком; 2. Вкладка "Данные" - рядом с кнопкой "Фильтр" есть кнопочка поменьше "Дополнительно". Жмете на нее; 3. Если будет задавать вопросы, отвечаете "ОК"; 4. В появившемся окошке ставите галку "Только уникальные записи" и, по желанию, точку "Скопировать результат в другое место" (тогда указываете в третьем белом поле это самое место). Жмете ОК._Boroda_
Да, тогда только макросы. Поскольку с учетом регистра работает только =НАЙТИ(), а ей диапазон параметром не передашь Ну, или хитровывернуться (макрос - имя - формула+формула) - и получим данные для фильтра:
Да, тогда только макросы. Поскольку с учетом регистра работает только =НАЙТИ(), а ей диапазон параметром не передашь Ну, или хитровывернуться (макрос - имя - формула+формула) - и получим данные для фильтра:AndreTM
Pelena, я тоже про СОВПАД() подумал сначала. Потом понял, что формулы там придётся наворачивать и наворачивать...
Вот если честно - задания такого типа одноразовые. В том плане, что над исходным списком выполняются один раз, и затем уже работа продолжается с результирующим списком. Ибо "удалить" а не "сравнить-дополнить". Для меня вообще проще пяток строк кода нарисовать (и без всяких имён и формул), запустить, получить результат - и не ломать дальше голову Ну, можно код процедурой оформить, на будущее, и вызовы нарисовать - мало ли, потребуется ещё...
Pelena, я тоже про СОВПАД() подумал сначала. Потом понял, что формулы там придётся наворачивать и наворачивать...
Вот если честно - задания такого типа одноразовые. В том плане, что над исходным списком выполняются один раз, и затем уже работа продолжается с результирующим списком. Ибо "удалить" а не "сравнить-дополнить". Для меня вообще проще пяток строк кода нарисовать (и без всяких имён и формул), запустить, получить результат - и не ломать дальше голову Ну, можно код процедурой оформить, на будущее, и вызовы нарисовать - мало ли, потребуется ещё...AndreTM
Как вариант - получить в соседней ячейке строку из кодов символов (куча формул или одна UDF), или например что думаю проще из 1/0 (110101=сспспс), затем её через разделитель сцепить с проверяемой строкой. Затем удалить дубликаты. Затем по разделителю обрезать лишнее (текст по столбцам). Ну а проще конечно макрос на словаре - словарь различает регистр.
Как вариант - получить в соседней ячейке строку из кодов символов (куча формул или одна UDF), или например что думаю проще из 1/0 (110101=сспспс), затем её через разделитель сцепить с проверяемой строкой. Затем удалить дубликаты. Затем по разделителю обрезать лишнее (текст по столбцам). Ну а проще конечно макрос на словаре - словарь различает регистр.Hugo
Function КОДЫ_СИМВОЛОВ(ЯЧЕЙКА As Range, Optional Разделитель As String = "\") As String Dim simv As Long On Error Resume Next For simv = 1 To Len(ЯЧЕЙКА) КОДЫ_СИМВОЛОВ = КОДЫ_СИМВОЛОВ & Asc(Mid(ЯЧЕЙКА, simv, 1)) & Разделитель Next КОДЫ_СИМВОЛОВ = Left(КОДЫ_СИМВОЛОВ, Len(КОДЫ_СИМВОЛОВ) - Len(Разделитель)) End Function
[/vba]
Могу даже UDF кинуть [vba]
Код
Function КОДЫ_СИМВОЛОВ(ЯЧЕЙКА As Range, Optional Разделитель As String = "\") As String Dim simv As Long On Error Resume Next For simv = 1 To Len(ЯЧЕЙКА) КОДЫ_СИМВОЛОВ = КОДЫ_СИМВОЛОВ & Asc(Mid(ЯЧЕЙКА, simv, 1)) & Разделитель Next КОДЫ_СИМВОЛОВ = Left(КОДЫ_СИМВОЛОВ, Len(КОДЫ_СИМВОЛОВ) - Len(Разделитель)) End Function
Кажется удалить дубликаты можно ведь по столбцу с этими кодами символов - удалится ведь вся строка, а не только в проверяемом столбце? Не могу проверить - нет 2007. Тогда достаточно только UDF от RAN и умелых рук, ничего сцеплять-делить не нужно.
Кажется удалить дубликаты можно ведь по столбцу с этими кодами символов - удалится ведь вся строка, а не только в проверяемом столбце? Не могу проверить - нет 2007. Тогда достаточно только UDF от RAN и умелых рук, ничего сцеплять-делить не нужно.Hugo
Hugo, RAN, а я не понял... Чем вам вариант Лены не нравится? Она просто уникальные значения стала выносить ещё в один диапазон - а для фильтра уникальных достаточно исходной формулы:
Код
=СУММПРОИЗВ((A1<>"")*СОВПАД(A1;A$1:A1))=1
Фильтруем ЛОЖЬ, удаляем строки, удаляем фильтр... ну или наоборот - копируем строки с ИСТИНА.
Hugo, RAN, а я не понял... Чем вам вариант Лены не нравится? Она просто уникальные значения стала выносить ещё в один диапазон - а для фильтра уникальных достаточно исходной формулы:
Код
=СУММПРОИЗВ((A1<>"")*СОВПАД(A1;A$1:A1))=1
Фильтруем ЛОЖЬ, удаляем строки, удаляем фильтр... ну или наоборот - копируем строки с ИСТИНА.AndreTM
Спасибо за ответы, попробовал разобрать способ с функцие совпад - конечно немного геморойно так каждый раз делать, странно что в Excel нет нормальной фильтрации без этих функций. Хотелось бы как-то автоматизировать.
http://office.microsoft.com/ru-ru/excel-help/HP010062564.aspx Здесь описано только то, как функция работает с единичными значениями, то есть ячейками. Но как она работает с диапазонами? Если есть несколько совпадений, то видимо возвращаемый результат является массивом, так как функция СУММПРОИЗВ(--СОВПАД(A2;$A$2:A10)) может вернуть и 2. Я сразу проверил что вернет функция СОВПАД(A2;$A$2:A10). Результат - истина. Хотя совпадений есть несколько. Но после СУММПРОИЗВ получается 2. 2 не может получиться из значения ИСТИНА, значит есть еще значение. Как мне увидеть все значение, которые возвращает СОВПАД? Они же в ячейку не поместятся И еще, что за фигня с кнопками Ctrl+Shift+Enter? Где-то вычитал, что их нужно нажимать, если мы работаем с массивами. С массивами - значит с диапазонами, видимо. Когда нужно нажимать эти кнопки?
Спасибо за ответы, попробовал разобрать способ с функцие совпад - конечно немного геморойно так каждый раз делать, странно что в Excel нет нормальной фильтрации без этих функций. Хотелось бы как-то автоматизировать.
http://office.microsoft.com/ru-ru/excel-help/HP010062564.aspx Здесь описано только то, как функция работает с единичными значениями, то есть ячейками. Но как она работает с диапазонами? Если есть несколько совпадений, то видимо возвращаемый результат является массивом, так как функция СУММПРОИЗВ(--СОВПАД(A2;$A$2:A10)) может вернуть и 2. Я сразу проверил что вернет функция СОВПАД(A2;$A$2:A10). Результат - истина. Хотя совпадений есть несколько. Но после СУММПРОИЗВ получается 2. 2 не может получиться из значения ИСТИНА, значит есть еще значение. Как мне увидеть все значение, которые возвращает СОВПАД? Они же в ячейку не поместятся И еще, что за фигня с кнопками Ctrl+Shift+Enter? Где-то вычитал, что их нужно нажимать, если мы работаем с массивами. С массивами - значит с диапазонами, видимо. Когда нужно нажимать эти кнопки?GuitarFan
Сообщение отредактировал GuitarFan - Четверг, 07.11.2013, 02:59
Если в строке формул выделить эту функцию (с аргументами) и нажать F9, то там же в строке формул увидите результат её выполнения в виде массива. Затем нажать ESC, чтобы вернуть формулу к первоначальному виду.
Если в строке формул выделить эту функцию (с аргументами) и нажать F9, то там же в строке формул увидите результат её выполнения в виде массива. Затем нажать ESC, чтобы вернуть формулу к первоначальному виду.
Проще говоря, каждый раз, когда я работаю с абсолютно любым диапазоном, нужно нажимать Ctrl+Shift+Enter? Почему это не делается автоматически? Что происходит, если я работаю с диапазоном (как например в формуле СОВПАД(A2;$A$2:A10) ) если я не нажимаю Ctrl+Shift+Enter?
Проще говоря, каждый раз, когда я работаю с абсолютно любым диапазоном, нужно нажимать Ctrl+Shift+Enter? Почему это не делается автоматически? Что происходит, если я работаю с диапазоном (как например в формуле СОВПАД(A2;$A$2:A10) ) если я не нажимаю Ctrl+Shift+Enter?GuitarFan