Реплицировать формулу массива электронных таблиц Google в Excel

#excel #google-apps-script #google-sheets

#excel #google-приложения-скрипт #google-таблицы

Вопрос:

У меня есть данные опроса Google Form, которые я хотел бы проанализировать. В моем примере документа Лист 1 содержит ответы на опрос, а лист 2 ссылается на данные из листа 1. На листе 2 я использую эту формулу массива в столбце под названием Поведение:

 =ArrayFormula(if(len(A3:A),if(Sheet1!Question3="Yes","Excluded ",)amp;if(Sheet1!Question5="Yes","Arrested ",)amp;if(Sheet1!Question6="Yes","Alcohol ",)))     
  

Проблема в том, что мне нужно иметь возможность загружать эту электронную таблицу Google в виде документа Microsoft Excel, но всякий раз, когда я это делаю, конечно, функция Google spreadsheet = ArrayFormula () не поддерживается в Microsoft Excel.

Мой вопрос в том, как я могу воспроизвести поведение этой функции массива, используя другой метод в Google spreadsheet, чтобы получить тот же результат при загрузке в Microsoft Excel?

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

Заранее большое спасибо.

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

1. Она отлично переводится в Excel, за исключением того, что при сбое любого из трех внутренних операторов if вы получаете ноль — вам нужно изменить их на if (Вопрос3 =»Да», «Исключено», «») и т.д., А также изменить A3: A на A3: 1000

Ответ №1:

Excel поддерживает формулы массива, но делает это иначе, чем Google Sheets.

Вместо функции ARRAYFORMULA Excel требует, чтобы автор формулы / редактор сначала выбрал область, на которую должен быть расширен результат формулы массива, затем войдите в режим редактирования и нажмите CTRL SHIFT ENTER. Смотрите раздел «Создание формулы массива, которая вычисляет несколько результатов» в разделе «Создание формулы массива

Ответ №2:

Можно реплицировать массивформулу Google Sheet в MS Excel, используя формулу OFFSET(), даже если это не так просто, как функция ArrayFormula.

Полную документацию функции можно найти здесь.

https://support.office.com/en-us/article/OFFSET-function-C8DE19AE-DD79-4B9B-A14E-B4D906D11B66

Краткий пример

Google Sheet

 = ARRAYFORMULA(SQRT(Sheet2!A:A))
  

=> Это скопирует полный столбец A для листа 2, извлекая квадратный корень из каждого значения.

Версия Excel

 = SQRT(OFFSET(Sheet2!A1,0,0,COUNTA(Sheet2!A:A),1))
  

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

Ответ №3:

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

Более подробная информация здесь: Sheets vs Excel forumlae