Нахождение более близкого значения и его копирование

#google-apps-script #google-sheets #google-sheets-formula

Вопрос:

У меня есть страница Google, где будет записана оплата, произведенная в PayPal. Таким образом, в основном пользователи будут вводить адрес любым способом, поэтому, чтобы уменьшить количество ошибок, у меня есть все возможные адреса, которые может ввести пользователь (это потому, что это платежная система для жителей моего жилого района, поэтому у меня есть весь адрес пользователя в базе данных). Итак, может ли кто-нибудь помочь мне найти формулу, которая найдет фактический адрес в листе «ИМЕНА ПОЛЬЗОВАТЕЛЕЙ» и возьмет только номер дома и улицу из фактических данных. Я прикрепил несколько изображений, чтобы лучше объяснить себя. Я хочу, чтобы формула была на листе «Paypal 2». Пожалуйста, ребята, мне нужна эта помощь.

https://docs.google.com/spreadsheets/d/1bM8l6JefFsPrlJnTWf56wOhnuSjdIwg3hMbY1tN1Zp8/edit#gid=0 — Ссылка на мои страницы Google

Адрес, введенный пользователями

                         The address entered by users
 

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

                 The sheet to look up for the actual address
 

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

                    Sheet to split the house number and street
      
 

Комментарии:

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

2. @ErikTyler Я хочу, чтобы формула была в PaypalData2, братан (на данный момент я изменил имя в конфигурации оплаты, и мне нужна формула в столбце оплаты Paypal, братан). Вам удалось понять проблему, извините?

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

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

5. Поскольку у вас нет контроля над тем, как пользователи вводят свой адрес в PayPal, вы не можете написать формулу, которая будет работать для всех возможных вариантов введенного адреса. Вам придется вручную проанализировать адреса из PayPal и разделить их на части для ваших записей. Вы могли бы написать регулярное выражение для наиболее распространенного способа записи адреса (например, номер дома, название улицы, район) и попытаться проанализировать адрес PayPal в соответствии с этим и отметить его для вашего обзора в таблице, если он не сможет его проанализировать.

Ответ №1:

Попробуйте это:

  1. Удалите свои формулы из «Конфигурации оплаты»! B3:C3. (Это временно удалит все результаты из B3:C.
  2. Поместите следующую формулу в ячейку B3:

    =ARRAYFORMULA(IF(LEN(PaypalData1!C3:C),PROPER(REGEXEXTRACT(PaypalData1!L3:L, "(d )[,s] ([^,] d )")),))

REGEXEXTRACT позволяет извлекать более одной группировки, как я сделал с помощью этой формулы; таким образом, это должно привести к единому результату для B3:C.

Выражение RE2 гласит: «Найдите первое число(числа), за которым следует любое количество запятых или пробелов, и извлеките часть числа как группу один; затем найдите любую строку после нее, которая не содержит запятой и заканчивается любым количеством цифр, и извлеките ее как группу два».