Способ перезаписать определенные данные столбца на основе нового ответа формы? - PullRequest
1 голос
/ 27 марта 2019

У меня есть форма Google (форма 1), которую продавец заполняет после завершения продажи. Эта форма дает возможность загрузить документы клиента, например. Копия паспорта, подтверждение адреса и т. Д. Они не являются обязательными, поскольку у клиента их может не быть на момент продажи.

Эти загрузки отслеживаются с помощью ссылок на документы Google в основном листе ввода.

У меня есть вторая форма (форма 2), которая используется для загрузки документов, которые никогда не загружались с первой попытки.

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

Есть ли способ перезаписать пустые входные данные из формы 1 новым вводом из формы 2?

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

https://docs.google.com/spreadsheets/d/1cOSBvgCFYoLYsf4GslyshUoXO0EP_ZbHfuaiGYD8FLk/edit?usp=sharing

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

Мне не нравится изменять результаты формы. Я обнаружил, что делает все остальное:

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

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

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


Ниже я скопировал пять формул для потомков. Если вы думаете, что в конечном итоге вы воспользуетесь этой вкладкой «Отчет» или адаптируете ее формулы к своему проекту, пожалуйста, скажите об этом, и я объясню их подробно - не хуже, чем через год, а затем вы должны исправить мои запутанные формулы или отредактируйте их, чтобы соответствовать новым потребностям проекта.

A2 - взять каждое отдельное имя из обеих форм

=UNIQUE({'Form 1 Response'!A2:A;'Form 2 Response'!A2:A})

B2 - показать 'Complete' или пропущенные буквы документа

=ARRAYFORMULA(IFS(
  NOT(LEN(A2:A)),"",
  LEN(C2:C)*LEN(D2:D)*LEN(E2:E),"Complete",
  TRUE,IF(LEN(C2:C),"","Doc A ")&IF(LEN(D2:D),"","Doc B ")&IF(LEN(E2:E),"","Doc C")
))

C2 - Извлечь любые ссылки на документ A из любой формы

=ARRAYFORMULA(IF(NOT(LEN($A$2:$A)),"",
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 1 Response'!$A$2:C,LEN('Form 1 Response'!C$2:C)),3,FALSE))&
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 2 Response'!$A$2:B,LEN('Form 2 Response'!B$2:B)),2,FALSE))
))

D2 — Doc B links

=ARRAYFORMULA(IF(NOT(LEN($A$2:$A)),"",
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 1 Response'!$A$2:D,LEN('Form 1 Response'!D$2:D)),4,FALSE))&
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 2 Response'!$A$2:C,LEN('Form 2 Response'!C$2:C)),3,FALSE))
))

E2 — Doc C ссылки

=ARRAYFORMULA(IF(NOT(LEN($A$2:$A)),"",
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 1 Response'!$A$2:E,LEN('Form 1 Response'!E$2:E)),5,FALSE))&
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 2 Response'!$A$2:D,LEN('Form 2 Response'!D$2:D)),4,FALSE))
))
1 голос
/ 29 марта 2019

вставить в A1 :

=ARRAYFORMULA({'Form 1 Response'!A1:E1; {UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}),
 SUBSTITUTE(REGEXREPLACE(SUBSTITUTE(REGEXREPLACE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(SUBSTITUTE(IF(
 IFERROR(IF(VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 'Form 1 Response'!A2:E, 
 {3, 4, 5}, 0)="", IF({
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col2 is not null"), 2, 0),
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col3 is not null"), 3, 0),
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col4 is not null"), 4, 0)}="", , {'Form 2 Response'!B1:D1}),
 {'Form 1 Response'!C1:E1}))="", {'Form 1 Response'!C1:E1}, 1), " ", "♠")), , 500000))),
 "  | ", ", "), "1, 1, 1", "Complete"), "1, |, 1|Doc♠A, Doc♠B, Doc♠C", ""), "♠", " "),
 IFERROR(IF( VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 'Form 1 Response'!A2:E, 
 {3, 4, 5}, 0)="", {
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col2 is not null"), 2, 0),
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col3 is not null"), 3, 0),
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col4 is not null"), 4, 0)},
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 'Form 1 Response'!A2:E, 
 {3, 4, 5}, 0)))}})

0

демонстрационная таблица

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