[英]Cell range not linking between two sheets in workbook (Google spreadsheet)
[英]Linking Data from two google sheets
我想鏈接我的谷歌表中跟蹤人們假期的數據。 我還有另一張紙,然后我將用它打印出來,以便人們輕松查看誰離開了。 任何人都可以幫助我從一系列單元格中獲取數據並只返回人名的邏輯嗎?
我不能分享床單,因為那里綁定到我的公司,我不能在公司外分享。 我可以分享我正在嘗試完成的工作的屏幕截圖。 任何可以使這更容易的想法都會有所幫助。 我還嘗試將跟蹤器鏈接到谷歌日歷,在那里我做了一個新的
我創建了一個自定義 function,它根據假期輸入檢索每天的姓名列表。
根據輸入表,公式找到具有正確日期的列,然后查看該列是否有任何v
字符,如果找到,它將將該名稱添加到結果中。
日數是格式化為僅顯示月份日期的日期對象。 月份名稱顯示其下方日期的月份。 (只是裝飾性的)如果不只是尋找v
您想尋找任何東西( h
, p
等),您可以將注釋行更改為!=""
。 然而,例如,需要更多的調整來返回一個區分假期和半天的列表。
function test(){
GETVACATIONS(new Date("2019-01-02"));
}
function GETVACATIONS(date) {
const inputSheetName = "Input";
const namesColumns = 1;
const dateRow = 2;
const dateStartCol = 8;
var spreadsheet = SpreadsheetApp.getActive();
var inputSheet = spreadsheet.getSheetByName(inputSheetName);
var nameSize = inputSheet.getDataRange().getLastRow()-dateRow;
date = date.setHours(1,0,0,0); //reset time for uniform search
var result = [];
//Find cell that has the correct date.
var lookupDateRange = inputSheet.getRange(dateRow, dateStartCol, 1, inputSheet.getMaxColumns()-dateStartCol);
var foundIndex = lookupDateRange.getValues()[0].map(function (x) {return x.setHours(1,0,0,0);}).indexOf(date);
if (foundIndex!=-1) {
//match found
var lookupColumn = dateStartCol+foundIndex;
var lookupDataRange = inputSheet.getRange(dateRow+1, lookupColumn, nameSize);
//Collect rows that have data, fetch the usernames on that row.
for (var r=0; r<lookupDataRange.getValues().length; r++) {
if (lookupDataRange.getValues()[r][0]==="v") {//Has vacation. Might change to if !="" if you want to register any non empty
result.push(inputSheet.getRange(dateRow+1+r, namesColumns).getValue());
}
}
}
return result.sort().toString();
}
將公式=GETVACATIONS(date)
添加到單元格,其中 date 是Date
object 或對帶有 1 的單元格的引用。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.