ฉันมีสเปรดชีตรายเดือนที่ต้องอาศัยตัวเลขจากเดือนก่อนหน้า ฉันต้องการนำเข้าค่าเหล่านี้แบบไดนามิกแทนที่จะตัดและวางค่าเหล่านั้น เป็นไปได้ไหม ฉันต้องทำอย่างไร?
ฉันมีสเปรดชีตรายเดือนที่ต้องอาศัยตัวเลขจากเดือนก่อนหน้า ฉันต้องการนำเข้าค่าเหล่านี้แบบไดนามิกแทนที่จะตัดและวางค่าเหล่านั้น เป็นไปได้ไหม ฉันต้องทำอย่างไร?
คำตอบ:
IMPORTRANGE()
ดูเหมือนจะเป็นฟังก์ชั่นที่คุณต้องการ
จากรายการฟังก์ชั่นสเปรดชีตของ Google :
Google Spreadsheets ให้คุณอ้างอิงสมุดงานอื่นในสเปรดชีตที่คุณกำลังแก้ไขโดยใช้ฟังก์ชัน ImportRange ImportRange ให้คุณดึงค่าเซลล์หนึ่งค่าขึ้นไปจากสเปรดชีตหนึ่งไปยังอีกค่าหนึ่ง หากต้องการสร้างสูตร ImportRange ของคุณเองให้ป้อน = importRange (สเปรดชีต - คีย์ช่วง) สำหรับภาษาที่ใช้เครื่องหมายจุลภาคเพื่อคั่นทศนิยมให้ใช้เครื่องหมายอัฒภาคแทนเครื่องหมายจุลภาคเพื่อคั่นอาร์กิวเมนต์ในสูตรของคุณ
Spreadsheet-key คือ STRING ซึ่งเป็นค่าคีย์จาก URL สเปรดชีต
Range คือ STRING ที่แสดงช่วงของเซลล์ที่คุณต้องการนำเข้ารวมถึงชื่อแผ่นงาน (ค่าเริ่มต้นเป็นชีตแรก) คุณสามารถใช้ชื่อช่วงได้หากต้องการ
เนื่องจากอาร์กิวเมนต์สองตัวนั้นเป็น STRING คุณจะต้องใส่เครื่องหมายอัญประกาศหรืออ้างอิงเซลล์ที่มีค่าสตริง
ตัวอย่างเช่น:
= importrange ("abcd123abcd123", "sheet1! A1: C10") "abcd123abcd123" คือค่าในแอตทริบิวต์ "key =" ใน URL ของสเปรดชีตเป้าหมายและ "sheet1! A1: C10" เป็นช่วงที่ต้องการ นำเข้า
= importrange (A1, B1) เซลล์ A1 มีสตริง ABCD123ABCD123 และเซลล์ B1 มีแผ่นงาน 1! A1: C10
หมายเหตุ: เพื่อที่จะใช้ ImportRange คุณจะต้องเพิ่มเป็นตัวแสดงหรือผู้ทำงานร่วมกันในสเปรดชีตที่ ImportRange ดึงข้อมูลอยู่ มิฉะนั้นคุณจะได้รับข้อผิดพลาดนี้: "ข้อผิดพลาด #REF!: ไม่พบคีย์สเปรดชีตชื่อแผ่นงานหรือช่วงเซลล์ที่ร้องขอ"
"คีย์" คือแน่นอนสตริงใน URL สำหรับสเปรดชีตที่ตรงกับkey=
พารามิเตอร์
ฉันเพิ่งทดสอบโดยสร้างสเปรดชีตสองตัว ในเซลล์ A1 ตัวแรกฉันใส่สตริง ในเซลล์ A1 ของวินาทีฉันใส่=importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1")
แล้วมันจะแสดงสตริงจากสเปรดชีตแรก (รหัสของคุณจะแตกต่างอย่างชัดเจน)
(รูปแบบของฟังก์ชั่นอาจขึ้นอยู่กับสถานที่ของคุณในประเทศฝรั่งเศสสูตรไม่ถูกต้องด้วยเครื่องหมายจุลภาคเพื่อให้คุณจะต้องแทนที่ด้วยลำไส้ใหญ่กึ่ง:. =importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1")
)
หมายเหตุ:
ขณะนี้ Google กำหนดขีด จำกัด อย่างหนัก 50 "สูตรอ้างอิงข้ามสมุดงาน" ต่อสเปรดชีต ที่มา: Google เอกสารชีตและสไลด์ขนาด จำกัด (h / t JJ Rohrer )
สเปรดชีต Google "ใหม่" (เร็ว ๆ นี้จะเป็นมาตรฐาน) จะลบสูตรอ้างอิงข้ามเวิร์กบุ๊ก 50 ขีด จำกัด 50 "( การสนับสนุนของ Google ) (h / t Jacob Jan Tuinstra )
ใน Google ชีต "ใหม่" คุณยังใช้ URL ทั้งหมดเป็นกุญแจ ( ฝ่ายสนับสนุนของ Google ) (h / t Punchlinern )
FYI หากคุณต้องการอ้างอิงชีตอื่นภายในสเปรดชีตอื่นไม่ควรอ้างชื่อชีตอีกครั้ง:
ใช้
=importRange("tgR2P4UTz_KT0Lc270Ijb_A","Sheet Name!A1:A10")
แทน
=importRange("tgR2P4UTz_KT0Lc270Ijb_A","'Sheet Name'!A1:A10")
ในอินเทอร์เฟซใหม่คุณควรจะสามารถพิมพ์=
ในเซลล์จากนั้นไปที่ชีทอื่นแล้วเลือกเซลล์ที่คุณต้องการ หากคุณต้องการทำด้วยตนเองหรือใช้อินเทอร์เฟซเก่าคุณสามารถทำได้=Sheet1!A1
โดยที่Sheet1
ชื่อของแผ่นงานและA1
เป็นเซลล์บนแผ่นงานที่คุณสนใจ สิ่งนี้เหมือนกับ Microsoft Excel
ฉันพบไวยากรณ์นี้โดยใช้ส่วนแทรก -> กำหนดช่วงใหม่
คอลัมน์ A ทั้งหมด: 'สเปรดชีตที่มีช่องว่างในชื่อ'! A: A
คอลัมน์ B ทั้งหมด: 'สเปรดชีตที่มีช่องว่างในชื่อ'! B: B
เป็นต้น
จากนั้นคุณสามารถใช้มันเป็น:
=COUNTIF('First Page'!B:B, "valueToMatch")
IMPORTRANGE
ฟังก์ชั่นสามารถนำเข้าข้อมูลจากอีกสเปรดชีต ช่วงการตั้งค่ามีความหมาย (เป็นไปได้) ภายในสเปรดชีตเท่านั้น นั่นคือสิ่งที่ฉันหมายถึงภายนอก
IMPORTRANGE
เป็น Jacob กล่าวว่า
นี่คือวิธีที่ฉันทำ (ปรับใช้ 'importrange ()') อีกครั้ง:
ฟังก์ชัน REMOTEDATA (inKey, inRange) { var outData; var ss = SpreadsheetApp.openById (inKey); ถ้า (ss) { outData = ss.getRange (inRange) .getValues (); } คืน outData; }
= SUM (REMOTEDATA ("key", "SheetName! A1: A10"))
"key" เป็นกุญแจสำคัญของเอกสารคุณจะพบได้ในพารามิเตอร์ "key = xyz" ของ URL เอกสาร
เอกสารสำหรับ ' บริการสเปรดชีต ' ให้ข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อ
SpreadsheetApp.openById()
หรือSpreadsheetApp.openByUrl()
-> developers.google.com/apps-script/guides/sheets/…
ฉันทำได้ง่ายๆด้วยการใช้ Query ตัวอย่างเช่นฉันมี 2 แผ่น ABC และ XYZ และฉันต้องการนำเข้าช่วงจาก A1 ถึง C30 จาก Abc ไปยัง XYZ คลิกเซลล์ที่คุณต้องการให้ช่วงปรากฏและเขียนสิ่งนี้:
=QUERY(ABC!A1:C30)
หมายเหตุ: หากชื่อแผ่นงานของคุณมีช่องว่างแน่นอนว่าคุณเขียนสิ่งนี้:
=QUERY('ABC 1'!A1:C30)
QUERY
ทำเช่นนั้น?
importrange("abcd123abcd123", "sheet1!A1:C10")
เช่น=query(importrange("abcd123abcd123", "sheet1!A1:C10"))
;-)