ถ้าสูตรมีหลายรูปแบบ


0

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

ฉันมีปัญหา ในแต่ละปีมีรายการห้องพัก 24 ห้องพร้อมข้อมูลเช่นหมายเลขห้องพักชื่อแขกหมายเลขหนังสือเดินทางจ่าย y / n สัญชาติ ฯลฯ ฉันต้องการให้หมายเลข 365 ของแต่ละพื้นที่เหล่านี้เกี่ยวข้องกับวันที่ ปีเช่นมกราคม 1 = 1

ฉันหวังว่าฉันจะสามารถใช้สเปรดชีตหลักนี้เพื่อกรอกรายชื่อแขกรายวันโดยอัตโนมัติโดยใช้สูตร if = if (cellref = 1 .... และมันจะกรอกแบบฟอร์มรายวันของฉันด้วยข้อมูลทั้งหมดที่ฉันต้องการ เช่นชื่อ, หมายเลขหนังสือเดินทาง, จ่าย y / n เป็นต้น

ในใจของฉันฉันกำลังมองหาสูตรที่ต้องคำนึงถึงความเป็นไปได้ 365 ของสเปรดชีต / แผ่นงานต้นฉบับ

ฉันจะกรอกข้อมูลฟอร์มรายวันด้วยสเปรดชีตรายปีโดยใช้สูตรได้อย่างไร มีวิธีง่าย ๆ หรือฉันจะพิมพ์สูตรความยาวเรียงความลงในแบบฟอร์มรายวันของฉันหรือไม่?

ความช่วยเหลือใด ๆ ที่ชื่นชมฉันจะแตกมันแค่ต้องการคำแนะนำ


คำถามของคุณยุ่งเหยิงเล็กน้อย24-room listโรงแรมของคุณมีห้องพักอะไรบ้าง 24 ห้อง 365 พื้นที่คืออะไร? พวกเขาแต่ละคนใน 1 แผ่นหรือบนแผ่นเดียวกัน? และทำไมโรงแรมถึงไม่ใช้ฐานข้อมูล !!
Karthik T

ใช้สูตร if = if (cellref = 1 .... และมันจะกรอกแบบฟอร์มรายวันของฉันพร้อมด้วยข้อมูลทั้งหมด - ข้อมูลนี้มาจากไหน
mcalex

ลองดูที่=indirectการเดามันอาจเป็นไปได้ที่จะได้รับสิ่งที่พวกเขาร้องขอโดยใช้มันเพื่ออ้างถึงเซลล์ที่การอ้างอิงถูกกำหนดโดยใช้สูตรโดยพลการ
Darael

การเพิ่มเสียงของฉันไปยังความคิดเห็นอื่น ๆ สิ่งที่คุณต้องการอาจทำได้ค่อนข้างง่าย แต่ก็ขึ้นอยู่กับว่าคุณได้วางสเปรดชีตดั้งเดิมของคุณอย่างไร ด้วยข้อมูลเพิ่มเติมจากคุณเราสามารถหาวิธีช่วยเหลือได้ (และยินดีต้อนรับสู่ SuperUser!)
chuff

คำตอบ:


0

ฉันจะตั้งสมมติฐานบางอย่างที่นี่ แต่ฉันคิดว่าฉันรู้ว่าคุณกำลังทำอะไรอยู่ สันนิษฐานว่าคุณมีแผ่นงานหนึ่งแผ่นที่มีรูปแบบ "รายชื่อแขกรายวัน" และแผ่นงานอีกแผ่นที่คุณดึงข้อมูลมา (เนื่องจากแผ่นงาน 365 น่าจะเป็นบิตที่ไม่สามารถจัดการได้) ฉันจะสมมติว่าในคอลัมน์สเปรดชีตหลักของคุณมีวันของปี (1 - 365) และคอลัมน์ B มีหมายเลขห้อง (1 - 24) ฉันจะสมมติต่อไปว่าคุณมีการเรียงลำดับตามคอลัมน์ A เพื่อให้ห้องพักทุกห้องในวันเดียวกันนั้นต่อเนื่องกัน (นี่เป็นสิ่งสำคัญสำหรับตัวอย่างของฉัน

บนแผ่นงานรายชื่อแขกรายวันของคุณใส่หมายเลขวันที่คุณต้องการเรียกใช้ในเซลล์ (A1 ในตัวอย่างของฉัน)

B1:

=MATCH(A1,Sheet1!A:A)

หากแถวที่ 2 มีป้ายกำกับเราจะเริ่มแถวที่สามด้วยข้อมูลที่ดึงของคุณ:

=INDIRECT(ADDRESS(ROW()-3+$B$1,COLUMN()+1,4,1,"Sheet1"))

คุณสามารถคัดลอกสูตรข้ามคอลัมน์และลง 24 แถวเพื่อดึงข้อมูลจากรายการหลักของคุณ =indirect()จับเซลล์ตามสตริงข้อความ address()สร้างสตริงที่อ้างอิงถึงเซลล์ตามหมายเลขแถวหมายเลขคอลัมน์ตัวเลือกการจัดรูปแบบคู่และชื่อแผ่นงาน

ฉันระบุหมายเลขแถวโดยเรียกแถวของเซลล์สูตรด้วยการ=row()ลบสามอันเนื่องจากฉันสมมติว่าสองแถวแรกเป็นป้ายกำกับและจากนั้นเพิ่มหมายเลขแถวของแถวแรกที่มีวันที่ถูกต้อง (ป้อนใน A1 และพบว่า ผ่าน=match()สูตร)

ฉันชดเชยคอลัมน์ด้วย 1 เนื่องจากฉันคิดว่าคุณไม่จำเป็นต้องใช้ตัวระบุวันที่ซ้ำในรายชื่อแขกรายวันนี้

ตัวแปรการจัดรูปแบบสองตัวแปรไม่เปลี่ยนวิธีการทำงานของฟังก์ชันนี้เมื่อจับคู่กับ=indirect()ฟังก์ชัน ตัวแปรสุดท้ายคือชื่อแผ่นงานที่ป้อนเป็นสตริง คุณสามารถใส่ชื่อชีตในเซลล์และอ้างอิงถ้าคุณต้องดึงจากชีตที่หลากหลาย ในตัวอย่างข้างต้นคุณจะต้องแทนที่ "Sheet1" ด้วยชื่อชีตที่คุณเลือกสำหรับข้อมูล

ฉันหวังว่านี่จะเป็นคำแนะนำที่เพียงพอสำหรับคุณที่จะเรียกใช้จากที่นี่ มีหลายวิธีที่จะทำให้งานนี้ (คุณไม่จำเป็นต้องมี B1 ตัวอย่างเช่น แต่ฉันคิดว่ามันทำให้ตัวอย่างชัดเจนขึ้น)

ในที่สุดฉันขอแนะนำให้ใช้วันที่แทนที่จะเป็นจำนวนเต็ม มันจะทำให้สิ่งต่าง ๆ ชัดเจนและคุณสามารถทำสิ่งต่าง ๆ ที่สะดวกสบายเช่นใช้=today()สำหรับวันที่วันนี้

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