Идентификатор excel что это

Содержание

  1. Программные идентификаторы OLE (Office)
  2. Элементы ActiveX
  3. Microsoft Access
  4. Microsoft Excel
  5. Microsoft Graph
  6. Microsoft Outlook
  7. Microsoft PowerPoint
  8. Microsoft Word
  9. Поддержка и обратная связь
  10. Использование функций ВЫЗВАТЬ и РЕГИСТРАТОР
  11. В этой статье
  12. Описание
  13. Типы данных
  14. Замечания
  15. Дополнительные сведения о типах данных
  16. Типы данных F и G
  17. Тип данных K
  18. Тип данных O
  19. Тип данных P
  20. Тип данных R — вызов функций Microsoft Excel из библиотек DLL
  21. Переменные функции и повторные вычисления
  22. Изменение на месте — функции, объявленные как недействительные

Программные идентификаторы OLE (Office)

Используйте программный идентификатор OLE (иногда называемый ProgID) для создания объекта службы автоматизации. В приведенных ниже таблицах перечислены программные идентификаторы OLE для элементов ActiveX и приложений Office.

Элементы ActiveX

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

Для создания элемента управления Используйте этот идентификатор
CheckBox Forms.CheckBox.1
ComboBox Forms.ComboBox.1
CommandButton Forms.CommandButton.1
Frame Forms.Frame.1
Image Forms.Image.1
Label Forms.Label.1
ListBox Forms.ListBox.1
MultiPage Forms.MultiPage.1
OptionButton Forms.OptionButton.1
ScrollBar Forms.ScrollBar.1
SpinButton Forms.SpinButton.1
TabStrip Forms.TabStrip.1
TextBox Forms.TextBox.1
ToggleButton Forms.ToggleButton.1

Microsoft Access

Чтобы создать объекты Microsoft Access, перечисленные в таблице ниже, используйте один из соответствующих программных идентификаторов OLE. При использовании идентификатора без суффикса с номером версии создается объект самой последней версии Access, доступной на компьютере, на котором выполняется макрос.

Для создания объекта Используйте один из этих идентификаторов
Application Access.Application
CurrentData Access.CodeData, Access.CurrentData
CurrentProject Access.CodeProject, Access.CurrentProject

Microsoft Excel

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

Для создания объекта Используйте этот идентификатор Примечания
Application Excel.Application
Workbook Excel.AddIn
Workbook Excel.Chart Возвращает книгу, содержащую два листа, один для диаграммы, а другой для ее данных. Активным является лист диаграммы.
Workbook Excel.Sheet Возвращает книгу с одним листом.

Microsoft Graph

Чтобы создать объекты Graph, перечисленные в следующей таблице, используйте один из соответствующих программных идентификаторов OLE. При использовании идентификатора без суффикса с номером версии создается объект самой последней версии Graph, доступной на компьютере, на котором выполняется макрос.

Для создания объекта Используйте этот идентификатор
Application MSGraph.Application
Chart MSGraph.Chart

Microsoft Outlook

Чтобы создать объекты Microsoft Outlook, перечисленные в таблице ниже, используйте один из соответствующих программных идентификаторов OLE. При использовании идентификатора без суффикса с номером версии создается объект самой последней версии Outlook, доступной на компьютере, на котором выполняется макрос.

Для создания объекта Используйте этот идентификатор
Application Outlook.Application

Чтобы создать элементы управления ActiveX, специфические для форм Outlook и перечисленные в следующей таблице, используйте соответствующий программный идентификатор OLE.

Для создания элемента управления Microsoft Office Outlook Используйте этот идентификатор
OlkBusinessCardControl Outlook.OlkBusinessCardControl
OlkCategory Outlook.OlkCategoryStrip
OlkCheckBox Outlook.OlkCheckBox
OlkComboBox Outlook.OlkComboBox
OlkCommandButton Outlook.OlkCommandButton
OlkContactPhoto Outlook.OlkContactPhoto
OlkDateControl Outlook.OlkDateControl
OlkFrameHeader Outlook.OlkFrameHeader
OlkInfoBar Outlook.OlkInfoBar
OlkLabel Outlook.OlkLabel
OlkListBox Outlook.OlkListBox
OlkOptionButton Outlook.OlkOptionButton
OlkPageControl Outlook.OlkPageControl
OlkSenderPhoto Outlook.OlkSenderPhoto
OlkTextBox Outlook.OlkTextBox
OlkTimeControl Outlook.OlkTimeControl
OlkTimeZoneControl Outlook.OlkTimeZone

Microsoft PowerPoint

Чтобы создать объекты Microsoft PowerPoint, перечисленные в таблице ниже, используйте один из соответствующих программных идентификаторов OLE. При использовании идентификатора без суффикса с номером версии создается объект самой последней версии PowerPoint, доступной на компьютере, на котором выполняется макрос.

Для создания объекта Используйте этот идентификатор
Application PowerPoint.Application

Microsoft Word

Чтобы создать объекты Microsoft Word, перечисленные в таблице ниже, используйте один из соответствующих программных идентификаторов OLE. При использовании идентификатора без суффикса с номером версии создается объект самой последней версии Word, доступной на компьютере, на котором выполняется макрос.

Для создания объекта Используйте один из этих идентификаторов
Application Word.Application
Document Word.Document, Word.Template
Global Word.Global

Поддержка и обратная связь

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

Источник

Использование функций ВЫЗВАТЬ и РЕГИСТРАТОР

Важно: Внимание! Неправильное изменение реестра может привести к серьезному повреждению системы и вызвать необходимость ее переустановки. Корпорация Майкрософт не гарантирует успешного устранения неполадок, вызванных ошибками при редактировании реестра. Перед изменением реестра сохраните архивные копии любых важных данных. Новейшие сведения об использовании и защите реестра вашего компьютера см. в справке Microsoft Windows.

В этой статье описаны синтаксис формулы и использование функций ВЫЗВАТЬ, РЕГИСТРАТОР и РЕГИСТРАТОР.ИД в Microsoft Excel.

Примечание: Функции ВЫЗВАТЬ и РЕГИСТРИРУЙТЕ недоступны в Excel в Интернете.

В этой статье

Описание

Ниже описаны аргументы и типы возвращаемых значений функций ВЫЗВАТЬ, РЕГИСТРАТОР и РЕГИСТРАТОР.ИД. Аргументы и возвращаемые значения зависят от операционной среды; эти различия отражены в таблице типов данных.

Типы данных

В функциях ВЫЗВАТЬ, РЕГИСТРАТОР и РЕГИСТРАТОР.ИД аргумент «типы_данных» задает типы данных возвращаемых значений и всех аргументов для функции библиотеки DLL или кодового ресурса. Первый знак определяет тип данных возвращаемого значения. Остальные знаки указывают типы данных всех аргументов. Например, функция DLL, возвращающая число с плавающей запятой и принимающая целое число и число с плавающей запятой в качестве аргументов, требует в качестве аргумента «типы_данных» строку «BIB».

Приведенная ниже таблица содержит полный список кодов типов данных, распознаваемых Microsoft Excel, описание каждого типа данных и способ передачи значения, а также типичные объявления типов данных в языке программирования C.

Объявление в языке C

Логическое значение
(ЛОЖЬ = 0), ИСТИНА = 1)

8-байтовое число с плавающей запятой

Строка, заканчивающаяся кодом 0 (максимальная длина строки = 255)

Строка со счетчиком байтов (первый байт содержит длину строки, максимальная длина строки = 255 знаков)

8-байтовое число с плавающей запятой

Строка, заканчивающаяся кодом 0 (максимальная длина строки = 255 знаков)

Ссылка (изменяется на месте)

Строка со счетчиком байтов (первый байт содержит длину строки, максимальная длина строки = 255 знаков)

Ссылка (изменяется на месте)

2-байтовое беззнаковое целое

unsigned short int

2-байтовое целое число со знаком

4-байтовое целое число со знаком

Логическое значение
(ЛОЖЬ = 0, ИСТИНА = 1)

2-байтовое целое число со знаком

4-байтовое целое число со знаком

Передаются три аргумента:
unsigned short int *
unsigned short int *
double [ ]

Структура данных Microsoft Excel OPER

Структура данных Microsoft Excel XLOPER

Замечания

Объявления для языка C основаны на предположении, что компилятор использует по умолчанию 8 байт для хранения чисел с двойной точностью, 2 байта — для коротких целых и 4 — для длинных целых.

В среде программирования Microsoft Windows все указатели являются дальними. Например, в Microsoft Windows код типа данных D должен быть объявлен как unsigned char far *.

При вызове всех функций в библиотеках DLL и кодовых ресурсах используются соглашения о вызове Pascal. Большинство компиляторов C позволяют использовать соглашения о вызове Pascal, добавив ключевое слово pascal в объявление функции, как показано в примере: pascal void main (rows,columns,a)

Если функция использует для возвращаемого значения тип данных pass-by-reference, в качестве возвращаемого значения можно передать null-указатель. Microsoft Excel будет интерпретируется как #NUM! (значение ошибки).

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

Этот раздел содержит подробную информацию о типах данных F, G, K, O, P и R, а также другие сведения об аргументе «типы_данных».

Типы данных F и G

При работе с типами данных F и G функция может модифицировать буфер строки, выделенный приложением Microsoft Excel. Если код типа возвращаемого значения — F или G, значение, возвращаемое функцией, игнорируется. Вместо этого в списке аргументов функции выполняется поиск первого подходящего типа данных (F или G), и текущее содержимое выделенного буфера строки рассматривается как возвращаемое значение. В приложении Microsoft Excel для аргумента выделяется 256 байт, поэтому возвращаемая функцией строка может оказаться длиннее полученной.

Тип данных K

Тип данных K использует указатель на структуру FP, имеющую переменную длину. Необходимо следующим образом определить эту структуру в динамической библиотеке или программном ресурсе:

Объявление double array[1] выделяет память только для массива, содержащего один элемент. Число элементов в реальном массиве равно числу строк, умноженному на число столбцов.

Тип данных O

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

Вместо того чтобы возвращать значение, функция может изменять массив, переданный типом данных O. Для этого в качестве >O можно использовать type_text O. Дополнительные сведения см. в приведенной ниже таблице «Изменение на месте — функции, объявленные как недействительным».

Тип данных O был создан для обеспечения прямой совместимости с динамическими библиотеками Fortran, которые передают аргументы по ссылке.

Тип данных P

Тип данных P представляет собой указатель на структуру OPER. Структура OPER содержит 8 байт данных, за которыми следует 2-байтовый идентификатор, который определяет тип данных. При работе с типом данных P функция DLL или программный ресурс могут возвращать любой тип данных Microsoft Excel.

Структура OPER определяется следующим образом:

typedef struct _oper

Поле тип содержит одно из следующих значений:

Используемое поле в val

Строка (первый байт содержит длину строки)

Ошибка. Значения ошибок:

Последние два значения могут использоваться только как аргументы, но не как возвращаемые значения. Значение 128 (пропущенный аргумент) передается в том случае, если при вызове опущен какой-либо аргумент. Значение 256 (пустая ячейка) передается в случае ссылки на пустую ячейку при вызове функции.

Тип данных R — вызов функций Microsoft Excel из библиотек DLL

Тип данных R — это указатель на структуру XLOPER, которая является расширенной версией структуры OPER. В Microsoft Excel 4.0 и более поздних версиях приложения тип данных R можно использовать для создания библиотек DLL и ресурсов кода, которые вызывают функции Microsoft Excel. Используя структуру XLOPER, функции DLL могут передавать ссылки на лист и осуществлять не только передачу данных, но и управление потоком. Полное описание типа данных R и программного интерфейса приложения Microsoft Excel выходит за рамки данного раздела. Подробные сведения о типе данных R, программном интерфейсе Microsoft Excel и многих других технических аспектах этого приложения можно найти в пакете Руководство разработчика Microsoft Office XP.

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

Microsoft Excel обычно вычисляет функцию из динамической библиотеки (или программный ресурс) тогда, когда она вводится в ячейку, когда изменяется одна из влияющих ячеек или когда ячейка вычисляется в процессе выполнения макроса. Можно сделать функцию DLL или программный ресурс на листе временными, то есть они будут вычисляться всякий раз, когда пересчитывается лист. Для этого в конец аргумента «типы_данных» надо добавить восклицательный знак (!).

Например, в Microsoft Excel для Windows приведенная ниже формула будет пересчитываться всякий раз, когда будет пересчитываться лист:

Изменение на месте — функции, объявленные как недействительные

В качестве типа возвращаемого значения в аргументе «типы_данных» можно использовать одну цифру n (от 1 до 9). Это указывает приложению Microsoft Excel на необходимость изменить переменную, указанную аргументом номер n в аргументе «типы_данных», а не возвращать значение. Этот прием иногда называют изменением на месте. Типом n-го аргумента должен быть тип, передаваемый по ссылке (C, D, E, F, G, K, L, M, N, O, P или R). Функция DLL или программный ресурс при работе с языком C должны быть объявлены с ключевым словом void (или, при программировании на языке Pascal, с ключевым словом procedure).

Например, функция DLL, которая получает строку, заканчивающуюся знаком 0, и два указателя на целые числа в качестве аргументов, может отредактировать строку на месте. Используйте «1FMM» в качестве аргумента «типы_данных» и объявите функцию как void.

В предыдущих версиях Microsoft Excel 4.0 для изменения первого аргумента использовался знак > 4.0; изменить любой из аргументов, кроме первого, не существует. Знак > эквивалентен n = 1 в Microsoft Excel 4.0 и более поздних версиях.

Источник

Идентификаторы

Идентификаторами в VBA являются названия переменных, констант, функций, процедур, классов, типов данных и прочих элементов, не являющихся зарезервированными словами языка (названиями инструкций, операторов, встроенных функций и т. д.).

Среда разработки VBA поддерживает кодировку символов Unicode. Поддержка данной кодировки разработки означает, что программист может использовать в составе идентификаторов символы любого поддерживаемого алфавита (например, кириллицы).

При формировании идентификаторов необходимо учитывать следующее.

• Идентификатор должен состоять только из букв (любого алфавита), цифр и символа подчеркивания.

• Первым символом идентификатора должна быть буква.

Внимание!

VBA не различает регистр символов в идентификаторах. Это значит, что идентификаторы strmyText и strMyText будут представлять одну и ту же переменную. Это же справедливо и для идентификаторов процедур, функций, классов и т. д.

Рассмотрим примеры корректных идентификаторов VBA:

strText

CUSTOM_Data2

Функция_Суммы

РасчетПрибыли

Приветствую

Надо как-то в Excel или в LibreOffice настроить автоматическую генерацию уникального числа у каждой строки с заполненными данными.

Есть два столбца — ID (столбец №1) и имя человека (столбец №2). Если добавляю новое имя в столбец №2, то в этой строке в столбце №1 должен появиться уникальный идентификатор, к примеру, цифровой код (цифра). Но есть одна особенность. Допустим, что есть пять записей в файле с айдишниками с 1 по 5. Я удаляю пятую запись, строку целиком или очищаю ее, а затем добавляю новую запись. А вот у же у новой записи по факту шестой, но с учетом ранее удаленной записи, новая запись будет пятой, но ее ID уже не должен быть пятым, но должен быть шестым.

На картинке пояснил тремя блоками:
dc505601869f433e82f708d0404992e0.png

  1. добавил записи, добавились автоматом ID
  2. удалил пятую запись
  3. добавил новую запись; по факту ее ID должен быть новым, ранее не использовавшимся.

Подскажите пожалуйста реализацию.


  • Вопрос задан

    более трёх лет назад

  • 5452 просмотра

Пригласить эксперта

Используйте ms access или любую БД. Они для этого и предназначены.
в Excel можно реализовать через макросы, но это такой костыль, что всем костылям костыль:
Добавьте код макроса в код страницы (редактор кода vba->двойной щелчок по нужному листу в менеджере проекта), диапазон ваших значений B1:B1000

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

    ' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Range("B1:B1000")
    
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

        ' Display a message when one of the designated cells has been
        ' changed.
        ' Place your code here.
        X = 5
        Y = 1
        If Cells(Y, X).Value = "" Then Cells(Y, X).Value = 0
        On Error GoTo here
        
        If Target.Value <> "" Then
            answer = MsgBox("Increment?", vbYesNo + vbQuestion, "Empty Sheet")
            If answer = vbYes Then Target.Offset(0, -1).Value = Cells(Y, X).Value + 1
            If answer = vbYes Then Cells(Y, X).Value = Cells(Y, X).Value + 1
        Else
            Target.Offset(0, -1).Value = ""
        End If
here:
        Debug.Print Err
    End If
End Sub

Можно использовать ID на основе текущего времени, например 170911181042, 170911181057 и т.п. Со вставкой такого числа справится простенький макрос типа:

Sub typeID()
mydate = Date
mytime = Time
mydateF = Format(mydate, "yymmdd")
mytimeF = Format(mytime, "HhMmSs")
ID = mydateF & mytimeF
ActiveCell.Value = ID
End Sub

Варианты с GUID:
1. Макрос:

Public Function GetGUID() As String 
    GetGUID = Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 36) 
End Function

2. Формула:

=CONCATENATE(DEC2HEX(RANDBETWEEN(0;4294967295);8);"-";DEC2HEX(RANDBETWEEN(0;42949);4);"-";DEC2HEX(RANDBETWEEN(0;42949);4);"-";DEC2HEX(RANDBETWEEN(0;42949);4);"-";DEC2HEX(RANDBETWEEN(0;4294967295);8);DEC2HEX(RANDBETWEEN(0;42949);4))


  • Показать ещё
    Загружается…

15 апр. 2023, в 13:55

55000 руб./за проект

15 апр. 2023, в 13:45

1000 руб./за проект

15 апр. 2023, в 13:28

500 руб./за проект

Минуточку внимания

�����: ����������� ������ �� ����������: ������, �����, ����������

6.2. ������� � �������, ������������ � Excel

��������� �������� Excel �������� ����� ������� ����������� ���������, ������ ��������� �������� Word. � ������������ ������� ��� ����������� ���, ��� Excel ��������������� ���������� ��������� �������, ����� ���� � �� ���������� ���������� ��� �����. ��������������, ���������� ������������ ������������, � ������� ������ ���� ������ ������ ������������ ���������. � ���� ������� �� �������� ��������� �������� �������� � �������, ����������� ��� �������� � ����������� ������ � Excel.

���������� � ������� � ������������� ������ �������� �����, ������� ����� ��������� �� ������� ���� ���� � ���������. � Excel ������� ���������� ����� ���������.

��������� � ����������� ������ ������������� �������� ��������. ��������� Excel ������������ ������ � ������� �����������: �����������, ��������, �����������, ������� � ��.

��� � �������������, ������� ������������� ����������� ��������� �� �����-���� ������ (������, ��������, ������� � �.��.).

��������� � ���������� (�������������) ��������. ���������� ����� ����, ��������, ������������� ����� ���� �����-���� �����.

����������� ���� � ����, ���������� ������ ������, ������� ������������� ��� ������ � ���������� ��������. ��� ������ ������������ ���� ����� �������� �� ������� ������ ������� ���� ���� ������ ���������� ������ Shift+F10 .

������ � ���������, ������� �������� �� ���������� � Excel ����� ���������������� Visual Basic for Application (VBA) � ��������������� ��� ���������� ��� �������������� ������������. ������ � �������� �������������� � ������� ������� ������ ? ������ .

������ � ����� ����� ���� ��������, ������������ ��� ������ �����. ������� �������, ������ ������������ ����� ������ ��������� ������ ����, ������������ ��� ����� ������.

��������� � ��������� ������� ���������� ������ ��������� �������� ����������. �������� �������� �� ��������� Excel ����������� � ����, ������� ����������� � ������� ������� �������� ���� ������ ? ��������� .

������� � ������� ���������� (���������, ������� ���� ������).

�������� � ���� ���� ������, ������� ���������� ��� ���������� � ������� ��� ����������. � Excel ������������ ��������� ���� ����������: ��������������, ���������, ��������� ��������� � ��������� ������.

������ ������������ � ������, ��������� �� ������ � ���� ��������� ����������, ������������ ��� ����������� ������ � �������� � ������ ������ ������. ���������/���������� ���������������� ������� ����������� � ������� ��������������� ������� ������� ��� ? ������ ������������ .

������ � ����� ����������� ������� ����� (��������� ���� ��������) �� �������� �������� � ������� ��������. �� ������ ����� �������� ��������� �������: ������� �����, ��������� ������� ����, ������� ����, ��������� ������� ������, �������� ����� � ������� �����, �������� ����� � ���������� ������� ������, ����������� �������, ���������.

���������������� ��������� � �������� �������������� ������������ � ����������. ��������� �������� � ���� ����, ������ ������������, � ��. � Excel ����������� ����������� ���������������� ���������, ������������ � ����������� MS Office.

���������� � ��������������� ���������� ������������� ���������, ����������� � ������������ ������ � ���������� ���������� �� ����������� ���� ������. ����� �������� ���������� � �����-���� ������, ����� �������� �� �������� � ��������� ������� ������������ ���� �������� ���������� , ����� ���� � ���������� ������ ��������� �����.

������� ����� � ����, ������� ���������, ������������� � ����������� ���������� Excel. �������� ����������� �������� ������� ����� �������� ������� ���� (��. ����).

������� ���� � �������� ������� ������� �����, ��������������� ��� �����, �������������� � �������� ������, � ����� ��� ���������� ��������. �� ��������� � ������ ������� ����� �������� ��� ������� �����. �������� ����������� �������� �������� ����� �������� ������ (��. ����). ������� ���� ������� �� 16777216 �����, ������� �������� ����� �� 65536 ����� � 256 ��������.

������ � ����� ������ ���� ��������� �����.

�������������� � ��������� ���������� ������ (�� ��������� ���� � ������, �������, � ��.) ���� ��������� ������������� ������, ������������ � ������. ��������� �������������� ������ ���������� �� �� �����������, � ��������. �� ������, ��� ����� ��������� �������������� ������������ �������� � ������ ����� �� ��������� � �� ����������� ��������� (�������� ����������� ������ � ����������: � ������ �������� �������� 0,33 , �� � ������������ � ����������� �������������� �� ������ ����� ������������ �������� 0,3 ).

������� � ����������� ���������� Excel, ��������������� ��� ��������, ���������� � ������� ������. ������� ����� �������� � ���� ���������, ��������, ������, ��� ������ (���������) � ������� . ��������� ������ ���� �����:

�� �������������� �������� � ��������, ��������������� ��� ���������� �������������� �������� � �������� � �������� ���������� �������� ��������;

�� �������� ��������� � ������ �������� ������������ ��� ��������� ������ � ������ � �������� ���������� ���������� �������� ������ ��� ���� ;

�� ��������� �������� � ��������, ������������ ��� ����������� ������.

������� � ������� ������� ������� Excel. ������ ������� ����� �������� � ���� ���������, ��������, ������, ��� ������ (���������) � ������� (��. ����). ���������������� ������� � ��� �������, ���������� ������������� �� ����� VBA.

����������� ������� � ������������� ���������, ��������� �� ������ ����� � ��������, ������� ��������� �� ����� � ��������� ����.

������ � ���������� (������������) ����� �������� ����� (����������� �������), ��������������� ��� ����� � �������� ����������. ������ ������ ����� ��������� �����, ����� ��� ������� (��. ����). ����� �����, ��� ������ � �������� ������������ ��������� ��������:

�� ����� � ��� ����������������� (����������) ������; ����� ������� �� ����� (������) ������� � ������ ������, �� ����������� ������� ����������� ������ ������;

�� ������ � �������� �� ����� ������. ������ ����� ���� ����������� (�.��. �� ������������� ��� ����������� � ����������� ������), �������������� (��� ������ ���������� ��� ����������� � ����������� ������) � ����������. ������� ������ � ��� ������ �� ������, ������������� � ������ ������� �����.�

Уникальный идентификатор списка

Пусть у нас есть какой-либо список, к примеру фамилий, и мы хотим каждому элементу присвоить уникальный номер.

Сделать это можно следующим образом.

Первому элементу присваиваем номер 1.

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

Чтобы проверить первое ли это появление элемента используем комбинацию функций ЕНД(ПОИСКПОЗ()).

Если это первое появление, то ПОИСКПОЗ() вернет #Н/Д, а функция ЕНД(#Н/Д) вернет ИСТИНА и мы смело присваиваем элементу номер МАКС() среди верхних идентификаторов плюс 1.

Если это не первое появление, то ЕНД(ПОИСКПОЗ()) возвращает ЛОЖЬ и мы через функцию ВПР() находим уже имеющийся у элемента идентификатор.

В конечном итоге получаем такую формулу (для второго элемента):
=ЕСЛИ(ЕНД(ПОИСКПОЗ(C3;C$2:C2;0));МАКС(D$2:D2)+1;ВПР(C3;C$2:D2;2;ЛОЖЬ))

Дальше просто копируем эту формулу.

Похожие по тематике посты — еще почитать:

Понравилась статья? Поделить с друзьями:
  • Зп культура скачать в excel
  • Идеи для таблиц excel
  • Играть онлайн one word
  • Зонтик в excel скачать файл
  • Золотой цвет для word