เป็นไปได้หรือไม่ที่จะอ้างถึงคอลัมน์ทั้งหมดใน Google Spreadsheets โดยใช้รูปแบบ R1C1


12

ใน Google Spreadsheets ฉันมักจะใช้สัญลักษณ์ A1 เพื่ออ้างอิงทั้งคอลัมน์:

A1:A

ด้วยเหตุผลที่ฉันอธิบายด้านล่างฉันต้องการใช้รูปแบบ R1C1 เพื่ออ้างอิงทั้งคอลัมน์สิ่งที่ชอบ:

R1C1:C1

ไม่สามารถใช้ A1: A ใน Excel ได้เนื่องจากสัญกรณ์ R1C1 มีต้นกำเนิดมาจาก Excel จึงไม่น่าเป็นไปได้ที่จะทำสิ่งนี้ในสัญกรณ์ R1C1 ถ้าเป็นเช่นนั้นมันจะทำให้ชีวิตของฉันง่ายขึ้น

ความเป็นมา: ฉันมีการเข้าชมสเปรดชีตซึ่งดึงข้อมูลจากข้อมูลสเปรดชีตอื่นซึ่งมีรูปแบบที่เปลี่ยนแปลงแบบไดนามิก

ในการหลีกเลี่ยงปัญหานี้ฉันใช้สูตรเพื่อสร้างที่อยู่ในเซลล์ตามโครงร่างของข้อมูลปัจจุบัน ฉันสามารถอ้างอิงเซลล์ที่อยู่นี้ในสูตรอื่นโดยใช้ทางอ้อม และสร้างที่อยู่ได้ง่ายกว่าโดยใช้ R1C1 มากกว่า A1


"เนื่องจากเป็นไปไม่ได้ที่จะใช้ A1: A ใน excel" - คุณหมายถึง "เพราะคุณไม่สามารถใช้ R1C1 ใน excel" หรือไม่?
Vidar S. Ramdal

ไม่ฉันหมายความว่าช่วง A1: A ใช้งานได้เฉพาะใน Google เอกสาร - ด้วย excel คุณต้องระบุทั้งแถวและคอลัมน์สำหรับช่วงท้ายของช่วง
s6mike

5
ฉันไม่สามารถอ่านสัญกรณ์ R1C1 ได้โดยไม่ต้องสงสัยเกี่ยวกับ R2D2
Sony Santos

คำตอบ:


3

คำตอบสั้น ๆ

ใช่เป็นไปได้ที่จะอ้างอิงทั้งคอลัมน์โดยใช้สัญกรณ์ R1C1: ใช้ INDIRECT("C1",FALSE)

คำอธิบาย

Google ชีตไม่มีคุณสมบัติในการเปลี่ยนสัญกรณ์อ้างอิงจาก A1 เป็น R1C1 แต่สามารถใช้งานได้ครั้งสุดท้ายกับฟังก์ชันในตัวของINDIRECT

ตัวอย่าง

ในแผ่นงานที่มี 1,000 แถวสูตรต่อไปนี้จะคืน 1,000

=ROWS(INDIRECT("C1",FALSE)) 

2
Genius! ขอบคุณ :) ตอนนี้เกือบ 4 ปีผ่านไปแล้วตั้งแต่ฉันถามคำถามตอนนี้ฉันแค่ต้องจำสิ่งที่ฉันทำเมื่อฉันถามมัน!
s6mike

6

รองรับสัญลักษณ์ A1 แล้ว ไปที่กลางคอลัมน์ A:

SpreadsheetApp.getActiveSheet().getRange("A1:A").setHorizontalAlignment("center");

1
สัญกรณ์ A1 ได้รับการสนับสนุนเสมอ แต่คำถามของฉันถามว่าเป็นไปได้หรือไม่ที่จะใช้สัญกรณ์ R1C1 เพื่ออ้างอิงทั้งคอลัมน์ใน Google Spreadsheets
s6mike

2

ไม่ แต่คุณสามารถแก้ไขได้โดยรู้ว่าแถวใดเป็นแถวสุดท้ายที่มีข้อมูลในคอลัมน์โดยใช้COUNTAฟังก์ชัน

INDIRECT("A1:A") สามารถเขียนได้เช่น INDIRECT("R1C1:R" & COUNTA(R1C1:R1000C1) & "C1")

คุณต้องกำหนดค่า 'แถวสูงสุด' ที่เหมาะสม ฉันใช้ตัวอย่าง 1,000 รายการดังนั้นสูตรนี้ควรทำงานในสเปรดชีตที่มีมากถึง 1,000 แถว

เงยหน้าขึ้นมองCOUNTAในรายการฟังก์ชั่น Google สเปรดชีต


ตอนนี้เป็นไปได้ (ดูคำตอบของฉันบางทีนี่อาจถูกนำมาใช้กับ Google ชีตใหม่
Rubén

โอ้เยี่ยมมาก!
Vidar S. Ramdal

-1

รูปแบบที่ยอมรับได้แตกต่างกันไปขึ้นอยู่กับวิธีการใช้งาน ในหนึ่งนี้ยกตัวอย่างเช่นคำอธิบายช่วยให้สัญกรณ์ R1C1 แต่ก็ไม่มีความชัดเจน (เพื่อฉันอย่างน้อย) ไม่ว่าจะเป็น input หรือ output เป็นสัญกรณ์ R1C1

ฉันขอแนะนำให้ยอมรับการใช้งานgetRange(row, column, numRows, numColumns)แทน ( เอกสารทางการที่นี่ ) ขึ้นอยู่กับรายละเอียดการใช้งานที่คุณต้องการสิ่งนี้จะเหมาะสมกับวัตถุประสงค์ของคุณค่อนข้างดี ฉันมักจะใช้ตัวแปรสำหรับพารามิเตอร์ 'row' เพื่อดึงค่าทั้งหมดในลูป เช่นgetRange(row, 2, 1, 7)ที่แถว = 3 C2:C8จะกลับมาช่วง จากนั้นเพิ่มเพียง 'แถว' เพื่อกลับไปยังช่วงถัดไป D2: D8


1
คุณไม่ได้ตอบคำถามเกี่ยวกับวิธีการอ้างถึงคอลัมน์ทั้งหมดแทนที่จะเป็นจำนวนเส้นทางที่ระบุในคอลัมน์นั้น ไม่แนะนำให้ใช้การใช้ getRange ซ้ำ ๆ ในลูปเว้นแต่ว่าจำเป็น

1
สำหรับสิ่งที่คุณพบว่าไม่ชัดเจนในวิธีการ getRange: เอาท์พุทมันเป็นวัตถุช่วงไม่สตริงดังนั้นจึงไม่มีคำถามสัญกรณ์สำหรับมัน สัญกรณ์ที่ระบุไว้สำหรับการป้อนข้อมูลซึ่งเป็นสตริง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.