รับที่อยู่เซลล์ Excel ของค่าที่ใกล้เคียงที่สุดในช่วงเดียวกัน


0

ฉันมีสเปรดชีตขนาดใหญ่ (& gt; 15000 แถว) ที่มีชื่อ บริษัท สถานที่หมายเลขการผลิตและละติจูด / ลองจิจูดของสถานที่ ตารางตัวอย่าง

ฉันกำลังพยายามเปรียบเทียบละติจูดและลองจิจูดแต่ละพิกัดกับคนอื่น ๆ ทั้งหมดเพื่อหาค่าที่อยู่ภายใน 0.01 องศา มาเรียกคอลเล็กชันตำแหน่งเหล่านี้ว่า "พื้นที่" จากนั้นฉันต้องการได้รับยอดขาย / วันและยอดรวม / วันสำหรับแต่ละพื้นที่เหล่านั้น ฉันพยายามโจมตีเรื่องนี้โดยพยายามรับที่อยู่เซลล์ของตำแหน่ง lat / long ทั้งหมดที่อยู่ภายในความต้องการ 0.01 องศาของแถวที่มีอยู่โดยใช้สูตรดังนี้:

=CELL("address",INDEX(AB:AB,MATCH(MIN(ABS(AB:AB-[@Lat])),ABS(AB:AB-[@Lat]),0)))

หรือสูตรที่ซับซ้อนมากขึ้น:

=ABS(RANK([@Lat],AB:AB)-MATCH(MIN(LARGE(AB:AB,ROW(INDIRECT("1:"&COUNT(AB:AB)-2)))-LARGE(AB:AB,ROW(INDIRECT("1:"&COUNT(AB:AB)-2))+2)),LARGE(AB:AB,ROW(INDIRECT("1:"&COUNT(AB:AB)-2)))-LARGE(AB:AB,ROW(INDIRECT("1:"&COUNT(AB:AB)-2))+2),0)-1)<=1

โดยที่ AB คือคอลัมน์ Lat

แต่พวกเขากลับ # N / A หรือ 0 บางทีฉันต้องใช้สคริปต์ VBA เพื่อทำซ้ำผ่านการเปรียบเทียบ lat / long อย่างไรก็ตามฉันไม่คุ้นเคยกับ Excel VBA ฉันได้คัดลอกข้อมูลส่วนน้อย (& lt; 2000 แถว) ไปยังชีตอื่นเพื่อให้ง่ายขึ้นในการทดสอบสูตรอาร์เรย์

คำตอบ:


0

คุณสามารถสร้างตาราง Pivot ได้โดยเลือกข้อมูลของคุณและไปที่แทรก - & gt; ตาราง - & gt; ตารางเดือย หากคุณเลือกเพียงหนึ่งในข้อมูลของคุณ Excel อาจคาดเดาช่วงของข้อมูลทั้งหมดของคุณ

ตัวอย่างเช่นหากคุณต้องการ บริษัท ของคุณทั้งหมดที่มีความต้องการ 0.01 องศาให้ลากแล้วปล่อยฟิลด์ Long และ Company ไปยังพื้นที่แถว การสั่งซื้อเป็นสิ่งสำคัญมันจะต้องเป็นครั้งแรกที่สนามยาวแล้วเขตข้อมูล บริษัท จากนั้นสิ่งที่คุณต้องทำคือจัดกลุ่มลองจิจูดตามความต้องการระดับ 0.01

มีหลายวิธีที่จะทำ คุณสามารถไปที่ Data - & gt; ร่าง - & gt; จัดกลุ่มหรือคุณสามารถไปที่เครื่องมือ PivotTable - & gt; วิเคราะห์ - & gt; กลุ่ม - & gt; การเลือกกลุ่มหรือคุณสามารถคลิกขวาที่รายการเดียว (ของข้อมูลยาว) และเลือกกลุ่มจากเมนูทางลัด ไม่ว่าจะด้วยวิธีใดกล่องจัดกลุ่มจะปรากฏขึ้นและ Excel จะใส่ค่าเริ่มต้นและสิ้นสุดเมื่ออัตโนมัติตามค่าของคุณ สิ่งที่คุณต้องทำคือตั้งค่าเป็น 0.01 Excel จะจัดกลุ่ม บริษัท ทั้งหมดโดยอัตโนมัติตามค่าลองจิจูดของพวกเขาจัดกลุ่มตามข้อกำหนด 0.01


ในขณะที่เรียบง่ายและสง่างามในที่สุดสิ่งนี้ไม่ได้ให้ทางออกที่แท้จริง ถ้าฉันสร้างตารางเดือยที่มีแถวของ Lat, Long, Location และ Company (ตามลำดับ) ให้เรียง Lat ก่อนเป็นอันดับแรกจากนั้นเรียงตาม Lat เป็น 0.01 จากนั้นเรียงตาม Long ด้วย 0.01 ฉันจะได้กลุ่มที่อยู่ใกล้กัน แต่ถ้าฉันสร้างตารางสาระสำคัญสั่ง Long, Lat, Location, Company และเรียงลำดับ Long เป็น 0.01 จากนั้น Lat ด้วย 0.01 ฉันจะได้รับกลุ่มที่แตกต่างกว่าเดิม จากมุมมองทางเรขาคณิตฉันต้องเปรียบเทียบ lat / long แต่ละอันด้วยสมการระยะทาง: ds = sqrt (dx ^ 2 + dy ^ 2)
razzle_dazzle_84

มันเหมือนกับพิกัดเชิงขั้วและคุณต้องการเปรียบเทียบรัศมีของแต่ละจุด ถ้าใช่คุณไม่สามารถเพิ่มคอลัมน์ sqrt (Lat ^ 2 + Long ^ 2) และจัดกลุ่มตามรัศมีได้ใช่ไหม ปัญหาเดียวที่นี่คือคุณอาจพบคำตอบที่ผิดถ้าทั้งสองตำแหน่งอยู่ที่ด้านใดด้านหนึ่งของเส้นลมปราณ
Thales

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