Как я могу вернуть референтный диапазон формулы формулы?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу вернуть референтный диапазон формулы формулы?

Сообщение Anonymous »

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

Код: Выделить всё

=FILTER( FILTER($10:$500, Beginning_Date = Date_Range, Jobs_Range=Job), Employee_Name = Names_Range)

То, что это делает, это создает массив, найдя ряды даты и диапазонов заданий, где условия верны, чтобы вернуть диапазон столбцов, прежде чем отфильтроровать 2 -е время на именах в столбце, чтобы вернуть правильную строку.function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('Replace Projected Hours')
menu.addItem("Replace Hours","ReplaceProjectedHours").addToUi();
}

function ReplaceProjectedHours() {
const ss = SpreadsheetApp.getActive();
const sn = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Projected Hours');
const sheetrange = sn.getRange("$1:$500").getValues();

const dateRangeBeginning = ss.getRangeByName("Date_Range_Beginning").getValue();
var dateRangeBeginningNumber = dateRangeBeginning.getTime()/1000/86400 + 25569;

const dateRangeEnd = ss.getRangeByName("Date_Range_End").getValue();
var dateRangeEndingNumber = dateRangeEnd.getTime()/1000/86400 + 25569;

const daterange = ss.getRangeByName("Date_Support_Range").getValues();
//Logger.log(Array.isArray(daterange));
var dateCriteria = SpreadsheetApp.newFilterCriteria().whenNumberBetween(dateRangeBeginningNumber,dateRangeEndingNumber);
var dateFilter = daterange.filter(function(d){return d[1]==dateCriteria});
Logger.log(dateFilter);
Logger.log(Array.isArray(dateFilter));

var employeeName = ss.getRangeByName("Employee_Name").getValues();
var employeeNameRange = ss.getRangeByName("Employee_Names_Range").getValues();
//var employeeCriteria = employeeNameRange.getValues(employeeName);
var employeeFilter = employeeNameRange.filter(function(e){return e[1]==employeeName})
Logger.log(employeeFilter);
Logger.log(Array.isArray(employeeFilter));

const job = ss.getRangeByName("Job").getValue();
const jobNameRange = ss.getRangeByName("Job_Names_Range").getValues();
//var jobCriteria = SpreadsheetApp.newFilterCriteria().jobNameRange.getRange().getValues(job);
var jobFilter = jobNameRange.filter(function(j){return j[1]==job});

const projectedHoursPerWeek = ss.getRangeByName("Projected_Hours_per_Week").getValues();

var filteredRowResults = sheetrange.filter(function(r){return r[1]==dateFilter && r[2]==jobFilter &&r[3]==employeeFilter});
Logger.log(filteredRowResults);
Logger.log(Array.isArray(filteredRowResults));

//var filteredColumnResults = filteredRowResults.filter(function(c){return c[1]==employeeFilter});

//var newSheet = ss.insertSheet();
//newSheet.getRange(2,1,filteredRowResults.length).setValues(filteredRowResults);

//filteredColumnResults.setValue(projectedHoursPerWeek);

}
< /code>
В настоящее время я не вижу никаких результатов каждой отдельной функции фильтра. Они возвращают массивы, но без значений, и, честно говоря, я не уверен, является ли функция фильтра подходящим инструментом для формулы, эквивалентной сценарию.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ence-range
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»