Меню

Ошибка указанный именованный диапазон не найден

 

kolper

Пользователь

Сообщений: 6
Регистрация: 19.08.2015

Создал пользовательскую функцию. Работает, возвращает булево значение.
Пытаюсь использовать ее для проверки данных — ан нет, ругается «Указанный именованный диапазон не найден». то бишь не знает книга такой формулы…
А в списке определенных пользователем — эта формула есть.
В чем причина? Или пользовательские формулы для проверки данных использовать нельзя?
И как обойти это?

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

kolper, здравия. Файл-пример с Вашей УДФ, согласно правил форума.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

kolper

Пользователь

Сообщений: 6
Регистрация: 19.08.2015

Ну это совершенно незачем, функция-то работает..

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

#4

19.08.2015 12:10:47

Цитата
kolper написал: Ну это совершенно незачем, функция-то работает…
ан нет, ругается «Указанный именованный диапазон не найден»

:D

Лень двигатель прогресса, доказано!!!

 

TSN

Пользователь

Сообщений: 217
Регистрация: 07.05.2014

#5

19.08.2015 12:11:56

Цитата
kolper написал: Ну это совершенно незачем, функция-то работает..

Тогда к чему вопрос   :qstn: , без файла примера нужно обращаться к шаманам или гадалкам ;) …  

Изменено: TSN21.08.2015 12:05:55

 

Влад

Пользователь

Сообщений: 1189
Регистрация: 24.12.2012

Запихнуть пользовательскую формулу в именованный диапазон.

 

kolper

Пользователь

Сообщений: 6
Регистрация: 19.08.2015

Вот это я не очень понимаю…
Формула в качестве параметра принимает значение из ячейки.
А в случае диапазона — плохо представляю…

 

kolper

Пользователь

Сообщений: 6
Регистрация: 19.08.2015

#8

19.08.2015 12:21:49

Цитата
Сергей написал: Ну это совершенно незачем

Формула — работает.
Проверку данных с использованием этой формулы — сделать не получается.

 

Z

Пользователь

Сообщений: 6111
Регистрация: 21.12.2012

Win 10, MSO 2013 SP1

#9

19.08.2015 12:26:02

Цитата
kolper написал: …Проверку данных с использованием этой формулы — сделать не получается.

OFF Вы начинаете доставать форумчан своей упертоcтью… ;)
Для усвоения:
«2.2. Опишите максимально подробно вашу задачу и желаемый результат. Желательно уточнить вашу версию Excel.
2.3. Приложите файл(ы) с примером (общим весом не более 100 Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.«

Изменено: Z19.08.2015 12:26:27

«Ctrl+S» — достойное завершение ваших гениальных мыслей!.. 😉

 

kolper

Пользователь

Сообщений: 6
Регистрация: 19.08.2015

#10

19.08.2015 12:34:56

Странно, что проблему понял только один прочитавший…
Для тех, кому не хватает кода — пожалуйста:

Код
Function Ф(ByVal S As Integer) As Boolean
   On Error Goto Ошибка
  If S<5 Then
     Ф=True
 Else
    Ф=False
 End If
 Exit Function

Ошибка:
  Ф=False

End Function

Надеюсь, ясности прибавилось…

Изменено: kolper20.08.2015 12:57:55

 

Влад

Пользователь

Сообщений: 1189
Регистрация: 24.12.2012

#11

19.08.2015 12:52:09

Цитата
kolper написал: плохо представляю…

Плохо, что плохо представляете. Пишите формулу с ссылкой на ячейку сразу в имя. Если ссылка задана относительная, она будет меняться в зависимости от ячейки, в которой установлена проверка данных. Присвоение имени нужно делать, когда ячейка с проверкой активна.

 

Юрий М

Модератор

Сообщений: 60347
Регистрация: 14.09.2012

Контакты см. в профиле

kolper, код следует оформлять тегом. Ищите такую кнопку <…>. Исправляйте.

 

kolper

Пользователь

Сообщений: 6
Регистрация: 19.08.2015

Конкретной ссылки в инете не нашел, но по косвенным данным — использовать UDF в проверке данных нельзя.

 

Влад

Пользователь

Сообщений: 1189
Регистрация: 24.12.2012

#14

20.08.2015 14:49:34

Прямо — нельзя, через именованный диапазон — можно.

Kirill_486

0 / 0 / 0

Регистрация: 25.01.2017

Сообщений: 4

1

25.01.2017, 15:10. Показов 1340. Ответов 4

Метки нет (Все метки)


В общем, идея была простая.
Для создания выпадающего списка из допустимых значений нужен источник — массив этих значений.
Удалить из массива повторяющиеся элементы формулами, внезапно (!!), довольно громоздкая конструкция.
Как вывод VBA to the rescue=)))

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Public Function removeEquals(List) As Variant
 
Dim res() As Variant
Dim item As Variant
Dim ecount As Integer
ecount = 0
ReDim Preserve res(0 To ecount) As Variant
 
For Each item In List
     If Not (isContains(item, res)) Then
         res(ecount) = item
         ecount = ecount + 1
         ReDim Preserve res(0 To ecount)
      End If
         
 
Next item
 
removeEquals = res
 
End Function
 
Public Function isContains(elem, List) As Boolean
 
Dim item As Variant
Dim IsCont As Boolean
IsCont = False
 
 
For Each item In List
     If item = elem Then
          IsCont = True
     End If
     
Next item
isContains = IsCont
 
End Function

Код выше выдает массив уникальных членов диапазона. А почему если код «=removeEquals(A1:A9)» засунуть в поле источник для проверки вводимых значений, он пишет «Указанный именованный диапазон не найден»?

Миниатюры

Как использовать пользовательские функции при указании диапазонов допустимых значений. Excel+VBA
 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



3815 / 2244 / 749

Регистрация: 02.11.2012

Сообщений: 5,894

25.01.2017, 15:15

2

а если формулу загнать в имя и в списке использовать имя?



0



0 / 0 / 0

Регистрация: 25.01.2017

Сообщений: 4

25.01.2017, 15:25

 [ТС]

3

Хорошая новость!)))
По шагам получилось. Excel падает при попытке открыть выпадающий список, что уже результат))
Есть идеи что сделать чтобы он заработал?



0



0 / 0 / 0

Регистрация: 25.01.2017

Сообщений: 4

25.01.2017, 15:35

 [ТС]

4

При просмотре результирующего массива, Excel пишет про ошибку мол к диапазону прилегают значения.
От может из-за этого сбоить?

Миниатюры

Как использовать пользовательские функции при указании диапазонов допустимых значений. Excel+VBA
 



0



0 / 0 / 0

Регистрация: 25.01.2017

Сообщений: 4

25.01.2017, 15:44

 [ТС]

5

Тоже не может. Если ему прописать диапазон так =removeEquals($A$1:$A$9), ошибки нет, а выпадающий список все равно это не ест(



0



После создания именованного диапазона вы можете использовать этот именованный диапазон во многих ячейках и формулах. Но как узнать эти ячейки и формулы в текущей книге? В этой статье представлены три хитрых способа решить эту проблему.

Найдите, где используется определенный именованный диапазон, с помощью функции поиска и замены

Найдите, где определенный именованный диапазон используется с VBA

Найдите, где используется определенный именованный диапазон с Kutools for Excel

Вкладка Office позволяет редактировать и просматривать в Office с вкладками и значительно упрощает работу …

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Повторное использование чего угодно: Добавляйте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
  • Более 20 текстовых функций: Извлечь число из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
  • Инструменты слияния: Несколько книг и листов в одну; Объединить несколько ячеек / строк / столбцов без потери данных; Объедините повторяющиеся строки и сумму.
  • Разделить инструменты: Разделение данных на несколько листов в зависимости от ценности; Из одной книги в несколько файлов Excel, PDF или CSV; От одного столбца к нескольким столбцам.
  • Вставить пропуск Скрытые / отфильтрованные строки; Подсчет и сумма по цвету фона; Отправляйте персонализированные электронные письма нескольким получателям массово.
  • Суперфильтр: Создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделям, дням, периодичности и др .; Фильтр жирным шрифтом, формулы, комментарий …
  • Более 300 мощных функций; Работает с Office 2007-2021 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.

стрелка синий правый пузырь Найдите, где используется определенный именованный диапазон, с помощью функции поиска и замены

Мы можем легко применить Excel Найти и заменить функция, чтобы узнать все ячейки, применяющие определенный именованный диапазон. Пожалуйста, сделайте следующее:

1. нажмите Ctrl + F одновременно клавиши, чтобы открыть диалоговое окно «Найти и заменить».

Внимание: Вы также можете открыть это диалоговое окно «Найти и заменить», щелкнув значок Главная > Найти и выбрать > Найдите.

2. В открывшемся диалоговом окне «Найти и заменить» выполните следующие действия:

документ, где используется именованный диапазон 1

(1) Введите имя определенного именованного диапазона в поле Найти то, что коробка;

(2) Выберите Workbook из В раскрывающийся список;

(3) Щелкните значок Найти все кнопку.

Внимание: Если раскрывающийся список «Внутри» не отображается, щелкните значок Опции кнопку, чтобы развернуть параметры поиска.

Теперь вы увидите, что все ячейки, содержащие имя указанного именованного диапазона, перечислены в нижней части диалогового окна «Найти и заменить». Смотрите скриншот:

документ, где используется именованный диапазон 2

Внимание: Метод «Найти и заменить» не только обнаруживает все ячейки, использующие этот определенный именованный диапазон, но также обнаруживает все ячейки, покрывающие этот именованный диапазон.


стрелка синий правый пузырь Найдите, где определенный именованный диапазон используется с VBA

Этот метод представит макрос VBA, чтобы узнать все ячейки, которые используют определенный именованный диапазон в Excel. Пожалуйста, сделайте следующее:

1. нажмите другой + F11 одновременно клавиши, чтобы открыть окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модули, скопируйте и вставьте следующий код в открывающееся окно модуля.

VBA: найти, где используется определенный именованный диапазон

Sub Find_namedrange_place()
Dim xRg As Range
Dim xCell As Range
Dim xSht As Worksheet
Dim xFoundAt As String
Dim xAddress As String
Dim xShName As String
Dim xSearchName As String
On Error Resume Next
xShName = Application.InputBox("Please type a sheet name you will find cells in:", "Kutools for Excel", Application.ActiveSheet.Name)
Set xSht = Application.Worksheets(xShName)
Set xRg = xSht.Cells.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0
If Not xRg Is Nothing Then
xSearchName = Application.InputBox("Please type the name of named range:", "Kutools for Excel")
Set xCell = xRg.Find(What:=xSearchName, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
        If Not xCell Is Nothing Then
xAddress = xCell.Address
If IsPresent(xCell.Formula, xSearchName) Then
xFoundAt = xCell.Address
End If
            Do
Set xCell = xRg.FindNext(xCell)
If Not xCell Is Nothing Then
If xCell.Address = xAddress Then Exit Do
If IsPresent(xCell.Formula, xSearchName) Then
If xFoundAt = "" Then
xFoundAt = xCell.Address
Else
xFoundAt = xFoundAt & ", " & xCell.Address
End If
End If
Else
Exit Do
End If
Loop
End If
If xFoundAt = "" Then
MsgBox "The Named Range was not found", , "Kutools for Excel"
Else
MsgBox "The Named Range has been found these locations: " & xFoundAt, , "Kutools for Excel"
End If
On Error Resume Next
xSht.Range(xFoundAt).Select
End If
End Sub
Private Function IsPresent(sFormula As String, sName As String) As Boolean
Dim xPos1 As Long
Dim xPos2 As Long
Dim xLen As Long
Dim I As Long
xLen = Len(sFormula)
xPos2 = 1
Do
xPos1 = InStr(xPos2, sFormula, sName) - 1
If xPos1 < 1 Then Exit Do
IsPresent = IsVaildChar(sFormula, xPos1)
xPos2 = xPos1 + Len(sName) + 1
If IsPresent Then
If xPos2 <= xLen Then
IsPresent = IsVaildChar(sFormula, xPos2)
End If
End If
Loop
End Function
Private Function IsVaildChar(sFormula As String, Pos As Long) As Boolean
Dim I As Long
IsVaildChar = True
For I = 65 To 90
If UCase(Mid(sFormula, Pos, 1)) = Chr(I) Then
IsVaildChar = False
Exit For
End If
Next I
If IsVaildChar = True Then
If UCase(Mid(sFormula, Pos, 1)) = Chr(34) Then
IsVaildChar = False
End If
End If
If IsVaildChar = True Then
If UCase(Mid(sFormula, Pos, 1)) = Chr(95) Then
IsVaildChar = False
End If
End If
End Function

3. Нажмите Run или нажмите F5 Ключ для запуска этого VBA.

4. Теперь в первом открывшемся диалоговом окне Kutools for Excel введите имя рабочего листа и нажмите OK кнопка; а затем во втором диалоговом окне открытия введите в него имя определенного именованного диапазона и щелкните значок OK кнопка. Смотрите скриншоты:

5. Теперь появляется третье диалоговое окно Kutools for Excel, в котором перечислены ячейки с использованием определенного именованного диапазона, как показано ниже.

После нажатия OK кнопку, чтобы закрыть это диалоговое окно, эти найденные ячейки сразу выбираются на указанном листе.

Внимание: Этот VBA может искать только ячейки, используя определенный именованный диапазон на одном листе за раз.


стрелка синий правый пузырьНайдите, где используется определенный именованный диапазон с Kutools for Excel

Если у вас установлен Kutools for Excel, его Заменить имена диапазонов утилита может помочь вам найти и перечислить все ячейки и формулы, которые используют определенный именованный диапазон в Excel.

1. Нажмите Кутулс > Больше > Заменить имена диапазонов , чтобы открыть диалоговое окно «Заменить имена диапазонов».

документ заменить имена диапазонов

2. В открывшемся диалоговом окне «Заменить имена диапазонов» перейдите к Имя и фамилия и нажмите Базовое имя раскрывающийся список и выберите из него определенный именованный диапазон, как показано ниже:

документ, где используется именованный диапазон 4

Теперь все ячейки и соответствующие формулы, которые используют определенный именованный диапазон, сразу отображаются в диалоговом окне.

3. Закройте диалоговое окно «Заменить имена диапазонов».

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now



Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Вопрос:

Может ли apache POI 3.12 делать VLOOKUP на другой лист? Скажем, у меня есть следующая формула (эта формула работает в Excel):

VLOOKUP(N6,Baskets,14,0)

Я пытаюсь использовать его, чтобы получить значение из листа Baskets, используя его на другом листе.

Он дает эту ошибку:

org.apache.poi.ss.formula.FormulaParseException: Specified named range 'Baskets' does not exist in the current workbook.

При поиске в Интернете на этом я действительно не нашел ответа. API POI для VLOOKUP предлагает мне, что он может использоваться только для использования в диапазонах, указанных на текущем листе. Однако, вероятно, я просто добавляю значение к имени аргумента table_array. Это все, что я нашел для документации.

После того, как ответ был найден здесь, это источник моей путаницы. Согласно документации Libre Office аргумент массива должен иметь более одного столбца. Первый столбец должен содержать критерий поиска, а остальные столбцы должны содержать столбец, используемый в качестве аргумента индекса. Наконец, аргумент индекса относится к аргументу массива, а не индексам столбцов книги.

Лучший ответ:

У меня есть рабочий пример для вас.

formulaCell.setCellFormula("IF(ISERROR(VLOOKUP('" + Baskets + "'!$A$4:$A$360,'" + processName + "'!$A$2:$B$80,2,FALSE)),"",VLOOKUP('" + Baskets + "'!$A$4:$A$360,'" + processName + "'!$A$2:$B$80,2,FALSE))" );

Я использую VLOOKUP, чтобы узнать, что данные на другом листе равны моим данным на текущем листе.

processName – это только строка для сравнения моих данных.

Моя проблема заключалась в указанном диапазоне на другом листе !$A$4:$A$360 "" и '' вокруг оператора VLOOKUP.

Содержание

  • Манипуляции с именованными областями
    • Создание именованного диапазона
    • Операции с именованными диапазонами
    • Управление именованными диапазонами
  • Вопросы и ответы

Именованный диапазон в Microsoft Excel

Одним из инструментов, который упрощает работу с формулами и позволяет оптимизировать работу с массивами данных, является присвоение этим массивам наименования. Таким образом, если вы хотите сослаться на диапазон однородных данных, то не нужно будет записывать сложную ссылку, а достаточно указать простое название, которым вы сами ранее обозначили определенный массив. Давайте выясним основные нюансы и преимущества работы с именованными диапазонами.

Манипуляции с именованными областями

Именованный диапазон — это область ячеек, которой пользователем присвоено определенное название. При этом данное наименование расценивается Excel, как адрес указанной области. Оно может использоваться в составе формул и аргументов функций, а также в специализированных инструментах Excel, например, «Проверка вводимых значений».

Существуют обязательные требования к наименованию группы ячеек:

  • В нём не должно быть пробелов;
  • Оно обязательно должно начинаться с буквы;
  • Его длина не должна быть больше 255 символов;
  • Оно не должно быть представлено координатами вида A1 или R1C1;
  • В книге не должно быть одинаковых имен.

Наименование области ячеек можно увидеть при её выделении в поле имен, которое размещено слева от строки формул.

Имя диапазона строке имен в Microsoft Excel

В случае, если наименование диапазону не присвоено, то в вышеуказанном поле при его выделении отображается адрес левой верхней ячейки массива.

Имя диапазону не присвоено в Microsoft Excel

Создание именованного диапазона

Прежде всего, узнаем, как создать именованный диапазон в Экселе.

  1. Самый быстрый и простой вариант присвоения названия массиву – это записать его в поле имен после выделения соответствующей области. Итак, выделяем массив и вводим в поле то название, которое считаем нужным. Желательно, чтобы оно легко запоминалось и отвечало содержимому ячеек. И, безусловно, необходимо, чтобы оно отвечало обязательным требованиям, которые были изложены выше.
  2. Присвоение имени диапазону через поле имен в Microsoft Excel

  3. Для того, чтобы программа внесла данное название в собственный реестр и запомнила его, жмем по клавише Enter. Название будет присвоено выделенной области ячеек.

Наименование диапазону через поле имен присвоено в Microsoft Excel

Выше был назван самый быстрый вариант наделения наименованием массива, но он далеко не единственный. Эту процедуру можно произвести также через контекстное меню

  1. Выделяем массив, над которым требуется выполнить операцию. Клацаем по выделению правой кнопкой мыши. В открывшемся списке останавливаем выбор на варианте «Присвоить имя…».
  2. Переход к присвоению имени диапазону ячеек через контекстное меню в Microsoft Excel

  3. Открывается окошко создания названия. В область «Имя» следует вбить наименование в соответствии с озвученными выше условиями. В области «Диапазон» отображается адрес выделенного массива. Если вы провели выделение верно, то вносить изменения в эту область не нужно. Жмем по кнопке «OK».
  4. Окно создания имени в Microsoft Excel

  5. Как можно видеть в поле имён, название области присвоено успешно.

Наименование диапазону через контекстное меню присвоено в Microsoft Excel

Lumpics.ru

Ещё один вариант выполнения указанной задачи предусматривает использование инструментов на ленте.

  1. Выделяем область ячеек, которую требуется преобразовать в именованную. Передвигаемся во вкладку «Формулы». В группе «Определенные имена» производим клик по значку «Присвоить имя».
  2. Переход к присвоению имени диапазону через кнопку на ленте в Microsoft Excel

  3. Открывается точно такое же окно присвоения названия, как и при использовании предыдущего варианта. Все дальнейшие операции выполняются абсолютно аналогично.

Окно создания имени в программе Microsoft Excel

Последний вариант присвоения названия области ячеек, который мы рассмотрим, это использование Диспетчера имен.

  1. Выделяем массив. На вкладке «Формулы», клацаем по крупному значку «Диспетчер имен», расположенному всё в той же группе «Определенные имена». Или же можно вместо этого применить нажатие сочетания клавиш Ctrl+F3.
  2. Переход в Диспетчер имен в Microsoft Excel

  3. Активируется окно Диспетчера имён. В нем следует нажать на кнопку «Создать…» в верхнем левом углу.
  4. Переход к созданию имени в Диспетчере имён в Microsoft Excel

  5. Затем запускается уже знакомое окошко создания файлов, где нужно провести те манипуляции, о которых шёл разговор выше. То имя, которое будет присвоено массиву, отобразится в Диспетчере. Его можно будет закрыть, нажав на стандартную кнопку закрытия в правом верхнем углу.

Закрытие окна Диспетчера имён в Microsoft Excel

Урок: Как присвоить название ячейке в Экселе

Операции с именованными диапазонами

Как уже говорилось выше, именованные массивы могут использоваться во время выполнения различных операций в Экселе: формулы, функции, специальные инструменты. Давайте на конкретном примере рассмотрим, как это происходит.

На одном листе у нас перечень моделей компьютерной техники. У нас стоит задача на втором листе в таблице сделать выпадающий список из данного перечня.

  1. Прежде всего, на листе со списком присваиваем диапазону наименование любым из тех способов, о которых шла речь выше. В итоге, при выделении перечня в поле имён у нас должно отображаться наименование данного массива. Пусть это будет наименование «Модели».
  2. Наименование диапазону моделей присвоено в Microsoft Excel

  3. После этого перемещаемся на лист, где находится таблица, в которой нам предстоит создать выпадающий список. Выделяем область в таблице, в которую планируем внедрить выпадающий список. Перемещаемся во вкладку «Данные» и щелкаем по кнопке «Проверка данных» в блоке инструментов «Работа с данными» на ленте.
  4. Переход в окно проверки данных в Microsoft Excel

  5. В запустившемся окне проверки данных переходим во вкладку «Параметры». В поле «Тип данных» выбираем значение «Список». В поле «Источник» в обычном случае нужно либо вручную вписать все элементы будущего выпадающего списка, либо дать ссылку на их перечень, если он расположен в документе. Это не очень удобно, особенно, если перечень располагается на другом листе. Но в нашем случае все намного проще, так как мы соответствующему массиву присвоили наименование. Поэтому просто ставим знак «равно» и записываем это название в поле. Получается следующее выражение:

    =Модели

    Жмем по «OK».

  6. Окно проверки вводимых значений в Microsoft Excel

  7. Теперь при наведении курсора на любую ячейку диапазона, к которой мы применили проверку данных, справа от неё появляется треугольник. При нажатии на этот треугольник открывается список вводимых данных, который подтягивается из перечня на другом листе.
  8. Выпадающий список в Microsoft Excel

  9. Нам просто остается выбрать нужный вариант, чтобы значение из списка отобразилось в выбранной ячейке таблицы.

Значение из выпадающего списка выбрано в Microsoft Excel

Именованный диапазон также удобно использовать в качестве аргументов различных функций. Давайте взглянем, как это применяется на практике на конкретном примере.

Итак, мы имеем таблицу, в которой помесячно расписана выручка пяти филиалов предприятия. Нам нужно узнать общую выручку по Филиалу 1, Филиалу 3 и Филиалу 5 за весь период, указанный в таблице.

Таблица выручки по филиалам предприятия в Microsoft Excel

  1. Прежде всего, каждой строке соответствующего филиала в таблице присвоим название. Для Филиала 1 выделяем область с ячейками, в которых содержатся данные о выручке по нему за 3 месяца. После выделения в поле имен пишем наименование «Филиал_1» (не забываем, что название не может содержать пробел) и щелкаем по клавише Enter. Наименование соответствующей области будет присвоено. При желании можно использовать любой другой вариант присвоения наименования, о котором шел разговор выше.
  2. Имя диапазону Филиал 1 присвоено в Microsoft Excel

  3. Таким же образом, выделяя соответствующие области, даем названия строкам и других филиалов: «Филиал_2», «Филиал_3», «Филиал_4», «Филиал_5».
  4. Имя всем диапазонам таблицы пррисвоено в Microsoft Excel

  5. Выделяем элемент листа, в который будет выводиться итог суммирования. Клацаем по иконке «Вставить функцию».
  6. Переход в Мастер функций в Microsoft Excel

  7. Инициируется запуск Мастера функций. Производим перемещение в блок «Математические». Останавливаем выбор из перечня доступных операторов на наименовании «СУММ».
  8. Переход в окно аргументов функции СУММ в Microsoft Excel

  9. Происходит активация окошка аргументов оператора СУММ. Данная функция, входящая в группу математических операторов, специально предназначена для суммирования числовых значений. Синтаксис представлен следующей формулой:

    =СУММ(число1;число2;…)

    Как нетрудно понять, оператор суммирует все аргументы группы «Число». В виде аргументов могут применяться, как непосредственно сами числовые значения, так и ссылки на ячейки или диапазоны, где они расположены. В случае применения массивов в качестве аргументов используется сумма значений, которая содержится в их элементах, подсчитанная в фоновом режиме. Можно сказать, что мы «перескакиваем», через действие. Именно для решения нашей задачи и будет использоваться суммирование диапазонов.

    Всего оператор СУММ может насчитывать от одного до 255 аргументов. Но в нашем случае понадобится всего три аргумента, так как мы будет производить сложение трёх диапазонов: «Филиал_1», «Филиал_3» и «Филиал_5».

    Итак, устанавливаем курсор в поле «Число1». Так как мы дали названия диапазонам, которые требуется сложить, то не нужно ни вписывать координаты в поле, ни выделять соответствующие области на листе. Достаточно просто указать название массива, который подлежит сложению: «Филиал_1». В поля «Число2» и «Число3» соответственно вносим запись «Филиал_3» и «Филиал_5». После того, как вышеуказанные манипуляции были сделаны, клацаем по «OK».

  10. Окно аргументов функции СУММ в Microsoft Excel

  11. Результат вычисления выведен в ячейку, которая была выделена перед переходом в Мастер функций.

Результат вычисления функции СУММ в Microsoft Excel

Как видим, присвоение названия группам ячеек в данном случае позволило облегчить задачу сложения числовых значений, расположенных в них, в сравнении с тем, если бы мы оперировали адресами, а не наименованиями.

Конечно, эти два примера, которые мы привели выше, показывают далеко не все преимущества и возможности применения именованных диапазонов при использовании их в составе функций, формул и других инструментов Excel. Вариантов использования массивов, которым было присвоено название, неисчислимое множество. Тем не менее, указанные примеры все-таки позволяют понять основные преимущества присвоения наименования областям листа в сравнении с использованием их адресов.

Урок: Как посчитать сумму в Майкрософт Эксель

Управление именованными диапазонами

Управлять созданными именованными диапазонами проще всего через Диспетчер имен. При помощи данного инструмента можно присваивать имена массивам и ячейкам, изменять существующие уже именованные области и ликвидировать их. О том, как присвоить имя с помощью Диспетчера мы уже говорили выше, а теперь узнаем, как производить в нем другие манипуляции.

  1. Чтобы перейти в Диспетчер, перемещаемся во вкладку «Формулы». Там следует кликнуть по иконке, которая так и называется «Диспетчер имен». Указанная иконка располагается в группе «Определенные имена».
  2. Переход в Диспетчер имен в программе Microsoft Excel

  3. После перехода в Диспетчер для того, чтобы произвести необходимую манипуляцию с диапазоном, требуется найти его название в списке. Если перечень элементов не очень обширный, то сделать это довольно просто. Но если в текущей книге располагается несколько десятков именованных массивов или больше, то для облегчения задачи есть смысл воспользоваться фильтром. Клацаем по кнопке «Фильтр», размещенной в правом верхнем углу окна. Фильтрацию можно выполнять по следующим направлениям, выбрав соответствующий пункт открывшегося меню:
    • Имена на листе;
    • в книге;
    • с ошибками;
    • без ошибок;
    • Определенные имена;
    • Имена таблиц.

    Для того, чтобы вернутся к полному перечню наименований, достаточно выбрать вариант «Очистить фильтр».

  4. Фильтрация в Диспетчере имён в Microsoft Excel

  5. Для изменения границ, названия или других свойств именованного диапазона следует выделить нужный элемент в Диспетчере и нажать на кнопку «Изменить…».
  6. Переход к изменению именованного диапазона через Диспетчер имен в Microsoft Excel

  7. Открывается окно изменение названия. Оно содержит в себе точно такие же поля, что и окно создания именованного диапазона, о котором мы говорили ранее. Только на этот раз поля будут заполнены данными.

    В поле «Имя» можно сменить наименование области. В поле «Примечание» можно добавить или отредактировать существующее примечание. В поле «Диапазон» можно поменять адрес именованного массива. Существует возможность сделать, как применив ручное введение требуемых координат, так и установив курсор в поле и выделив соответствующий массив ячеек на листе. Его адрес тут же отобразится в поле. Единственное поле, значения в котором невозможно отредактировать – «Область».

    После того, как редактирование данных окончено, жмем на кнопку «OK».

Окно изменения имени именнованного диапазона в Microsoft Excel

Также в Диспетчере при необходимости можно произвести процедуру удаления именованного диапазона. При этом, естественно, будет удаляться не сама область на листе, а присвоенное ей название. Таким образом, после завершения процедуры к указанному массиву можно будет обращаться только через его координаты.

Это очень важно, так как если вы уже применяли удаляемое наименование в какой-то формуле, то после удаления названия данная формула станет ошибочной.

  1. Чтобы провести процедуру удаления, выделяем нужный элемент из перечня и жмем на кнопку «Удалить».
  2. Удаление именованного диапазона через Диспетчер имен в Microsoft Excel

  3. После этого запускается диалоговое окно, которое просит подтвердить свою решимость удалить выбранный элемент. Это сделано во избежание того, чтобы пользователь по ошибке не выполнил данную процедуру. Итак, если вы уверены в необходимости удаления, то требуется щелкнуть по кнопке «OK» в окошке подтверждения. В обратном случае жмите по кнопке «Отмена».
  4. Подтверждение удаления имени в Microsoft Excel

  5. Как видим, выбранный элемент был удален из перечня Диспетчера. Это означает, что массив, к которому он был прикреплен, утратил наименование. Теперь он будет идентифицироваться только по координатам. После того, как все манипуляции в Диспетчере завершены, клацаем по кнопке «Закрыть», чтобы завершить работу в окне.

Закрытие окна Диспетчера имен в Microsoft Excel

Применение именованного диапазона способно облегчить работу с формулами, функциями и другими инструментами Excel. Самими именованными элементами можно управлять (изменять и удалять) при помощи специального встроенного Диспетчера.

Я просмотрел несколько примеров для своего вопроса, но не смог найти ответ, который работает.

Задний план:
У меня есть список элементов (скажем, яблоко, апельсин, банан) на листе Sheet1 (A2: A77, который уже является определенным диапазоном с именем «Список»).
Затем у меня есть другой лист (скажем, Sheet2) с несколькими ячейками, где появляется пользовательская форма (созданная с помощью кода vba), где пользователь может выбрать элемент и нажать «ОК».

Однако из-за характера пользовательской формы (и списка) у вас могут быть орфографические ошибки и т. д., и она все равно будет принята. Поэтому я хотел бы создать проверку, в которой она соответствует вводу в данный список (чтобы пользователи не могли вводить что-либо еще). Пользовательская форма/код предназначена для обеспечения возможности поиска (а не просто для простого списка проверки данных).

Проблема:
Я попытался создать это с помощью кода vba, который проверяет ввод, сопоставляет его со списком Sheet1 и, если совпадения нет, показывает msgbox с оператором. Это частично сработало (для некоторых букв, но не для других, очень странно).

Вот код, который у меня был:

Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim rSearchRng As Range
Dim vFindvar As Variant

If Not Intersect([B7:B26], Target) Is Nothing Then
    Set rSearchRng = Sheet4.Range("Liste")
    Set vFindvar = rSearchRng.Find(Target.Value)
    If Not vFindvar Is Nothing Then
        MsgBox "The Audit Project Name you have entered is not valid. Please try again!", vbExclamation, "Error!"
        Selection.ClearContents
    End If
End If
Application.EnableEvents = True
End Sub

Поэтому я подумал о создании этого сообщения об ошибке вместо простой проверки данных.

Проверка данных

  • Я попробовал опцию «список» (и поставил ее равной именованному диапазону), но это ничего не дало (окно ошибки не появилось)
  • Я попробовал «Пользовательский» со следующей формулой «СУММПРОИЗВ (— (B12 = Список)> 0) = ИСТИНА (я нашел это в сообщении, которое работало для других, когда я попробовал его в ячейке, это дало мне ожидаемое «ИСТИНА /FALSE» результаты), но все равно ничего не появляется

ОБНОВИТЬ

Рекомендации по проверке данных Tigeravatars работают, если у вас нет пользовательской формы (см. комментарии ниже).

Чтобы он работал с пользовательской формой, я изменил «MatchEntry» на TRUE, а также удалил все нежелательные «события изменения» из моего кода ComboBox. Окончательный код, который я использую сейчас, приведен ниже:

Dim a()

Private Sub CommandButton2_Click()

End Sub

Private Sub UserForm_Initialize()
  a = [Liste].Value
  Me.ComboBox1.List = a
End Sub

Private Sub ComboBox1_Change()
  Set d1 = CreateObject("Scripting.Dictionary")
  tmp = UCase(Me.ComboBox1) & "*"
  For Each c In a
    If UCase(c) Like tmp Then d1(c) = ""
  Next c
  Me.ComboBox1.List = d1.keys
  Me.ComboBox1.DropDown
End Sub

Private Sub CommandButton1_Click()
  ActiveCell = Me.ComboBox1
  Unload Me
End Sub
Private Sub cmdClose_Click()
  Unload Me
End Sub

Я думал, что покажу это здесь, если кто-то наткнется на мой вопрос.

Спасибо!

Вы назначили имя диапазонуячеек, и… возможно, вы забыли местоположение. Именуемый диапазон можно найти с помощью функции «Перейти», которая позволяет перейти к любому именоваемом диапазону во всей книге.

  1. Именующий диапазон можно найти на вкладке «Главная», нажав кнопку «Найти &Выбрать» и выбрав «Перейти».

    Можно также нажать клавиши CTRL+G.

  2. В поле «Перейти» дважды щелкните именуемый диапазон, который нужно найти.

    Диалоговое окно "Перейти"

Примечания: 

  • Во всплываемом окне «Перейти» показаны имененные диапазоны на всех книгах.

  • Чтобы перейти к диапазону неименованых ячеек, нажмите CTRL+G, введите диапазон в поле «Ссылка» и нажмите ввод (или кнопку ОК). Поле «Перейти» отслеживает диапазоны по мере их ввода, и вы можете вернуться к любому из них, дважды щелкнув их.

  • Чтобы перейти к ячейке или диапазону на другом листе, введите в поле «Ссылка» следующее: имя листа вместе с восклицательный индекс и абсолютные ссылки на ячейки. Например, лист2!$D $12 для перейти к ячейке, а лист3!$C$12:$F$21 — для перейти к диапазону.

  • В поле «Ссылка» можно ввести несколько именовых диапазонов или ссылок на ячейки. Разделяя каждую из них запятой, например: Price, Typeили B14:C22,F19:G30,H21:H29. Когда вы нажмете ввод или нажмете кнопку«ОК», Excel выделит все диапазоны.

Дополнительные сведения о поиске данных в Excel

  • Поиск или замена текста и чисел на листе

  • Поиск объединенных ячеек

  • Удаление или разрешение циклической ссылки

  • Поиск ячеек, содержащих формулы

  • Поиск ячеек с условным форматированием

  • Поиск скрытых ячеек на листе

Нужна дополнительная помощь?

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка усилителя pioneer mvh s610bt
  • Ошибка установки 1935 microsoft office 2007