Как использовать данные Фамилия Имя Отчество в проверке данных с диапозоном вывода, в случае возможного их изменения в будущем?

Цель: привязывать к ФИО определённые данные/транзакции в таблице. Использовать список ФИО, с помощью проверки данных, с возможностью выбора заполняющему. Заполняющему ориентироваться на уникальный номер не представляется возможным, и не удобно, гораздо практичнее ориентироваться по ФИО. Уникальный номер присваивается уже после выбранного ФИО.

Как использовать данные Фамилия Имя Отчество в проверке данных с диапозоном вывода, в случае возможного их изменения в будущем? (исправление опечаток/изменение фамилии).

В данный момент происходит следующим образом:

На странице с ФИО, имеются список ФИО и уникальный НОМЕР для каждого ФИО.

Страница с ФИО

A № B ФИО
1 001 Тестов Тест Тестович
2 002 Пупкин Василий Иванович

На странице с транзакциями присваивается уникальный номер, в зависимости от выбранной ФИО в выпадающем списке, организованном с помощью проверки данных и выводом диапазона ФИО со страницы "Страница с ФИО". Формула:

=FILTER('Страница с ФИО'!A:A, 'Страница с ФИО'!B:B=B1)

Страница с транзакциями

A № B ФИО C Транзакция
1 001 Тестов Тест Тестович +100
2 002 Пупкин Василий Иванович +1000
3 001 Тестов Тест Тестович -10
4 001 Тестов Тест Тестович -20
5 002 Пупкин Василий Иванович -10
6 001 Тестов Тест Тестович -10

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

Как всё-таки правильно создавать базу данных на Google Sheets?

Создал для эксперементов таблицу, по ссылке: https://docs.google.com/spreadsheets/d/1xzWz_Qm_zg4zRohfWcF1pzXBiIs6qU1_H0k5wIH2dDM/edit?usp=sharing

С 9ой строки можно эксперементировать


Ответы (2 шт):

Автор решения: Oleksandr Maksymeniuk

Насколько я понимаю задачу, я бы переделал flow по-принципу:

  1. Страница с ФИО, туда вносим контрагентов
  2. На странице с транзакциями подтягиваем ФИО через валидацию с первой страницы. С запретом ввода неправильных значений.
→ Ссылка
Автор решения: vikttur

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

Иванова работала лет 5, вышла замуж, стала Бабаягова. Нормально? Вполне. Но как в Вашей таблице определить, например, стаж работы прелестной девушки Прекрасная (ну, не понравилась фамилия, поменяли через 3 года)?

Не ищите проблем на свою голову.

Простое решение: исправлять не в таблице, куда вносятся данные, а ТОЛЬКО в списке-источнике проверки данных.

Исправили, зашли в таблицу и заменили предыдущее ФИО на исправленное (вручную, макросом - неважно). Если нужно хранить данные об изменениях ФИО - хранить в отдельной таблице. Не нужно мух сажать на котлеты )

А наличие в рабочей базе разних имен для одного человека - это наличие (сейчас или в будущем) головной боли при работе с такими данными.


Но если трудности - это Ваше все :), ждите, кто переведет макрос, написанный на VBA для Excel , на родной для Google-таблиц JS:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("B:B"), Target) Is Nothing Then
        If Target.Cells.Count > 1 Then Exit Sub
        If Target.Row < 2 Then Exit Sub
        
        With Application: .ScreenUpdating = False: .EnableEvents = False: End With

        If Target.Value <> "" Then
            Cells(Target.Row, 1).Value = Application.VLookup(Target.Value, Worksheets("list").Range("A2:B100"), 2, 0)
        End If

        With Application: .ScreenUpdating = True: .EnableEvents = True: End With
    End If
End Sub

Добавлять или изменять ФИО нужно только на листе, где расположен список.

При изменении в рабочей таблице в столбце В в столбец А записывается номер, соответствующий ФИО. Если изменить ранее созданную запись, будет изменен и номер.

введите сюда описание изображения

После изменения в списке в рабочую таблицу при выборе ФИО будут подтягиваться новые данные, при этом записи в ранее заполненных строках не изменятся (если в них не менять ФИО).

введите сюда описание изображения

→ Ссылка