เคล็ดลับสำหรับการเล่นกอล์ฟใน Excel?


20

มันแปลกที่ฉันไม่ได้เห็นสิ่งนี้เนื่องจาก Excel ดูเหมือนจะเป็นภาษาที่ถูกต้องสำหรับการตีกอล์ฟ (แม้ว่าคอมไพเลอร์จะไม่ฟรี)

Excel เป็นสัญลักษณ์แทนในการเล่นกอล์ฟการเก่งในการเล่นกอล์ฟที่มีความซับซ้อนปานกลางและบางครั้งก็เป็นความท้าทายที่ง่ายกว่าเช่นกัน บ่อยครั้งที่ Excel ไม่เก่งในเรื่องความท้าทายด้วยการจัดการสตริงและการจัดการตัวเลขแบบผสม

คุณมีคำแนะนำทั่วไปเกี่ยวกับการเล่นกอล์ฟใน Excel อย่างไร ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะกับ Excel (ไม่ใช่ VBA) กรุณาหนึ่งเคล็ดลับต่อคำตอบ


4
เห็นได้ชัดว่าเซลลูลาร์ออโตมาไม่ใช่สิ่งที่เกี่ยวข้องกับ excel ... :(

ฉันสงสัยว่าการสร้างUDFด้วย VBA นั้นถูกต้องหรือไม่
danieltakeshi

1
@danieltakeshi - ไม่; ดีไม่ใช่คำตอบของ Excel - ถ้าคุณใช้ Excel VBA แทนและเรียกจากหน้าต่างทันที activesheet หรือรูทีนย่อยซึ่งโดยทั่วไปถือว่าใช้ได้
Taylor Scott

คำตอบ:


11

การจดชวเลขอ้างอิง:

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

ตัวอย่าง:
=len(A1)+Len(B1)+LEN(C1)
อาจเป็น
=SUM(LEN(A1:C1))

=SUM(LEN(A1:C1 A2:C2 A3:C3))
อาจจะเป็น
=SUM(LEN(A1:C3))

=SUM(LEN(A1:A1024))
อาจจะเป็น
=SUM(LEN(A:A))

=SUM(LEN(A:A B:B C:C))
อาจจะเป็น
=SUM(LEN(A:C))


1
ฉันรู้ว่านี่ไม่ใช่คำแนะนำที่ดีแต่มีความเฉพาะพอที่จะทำให้ฉันคิดว่าควรรวมไว้ด้วย

9

เชื่อมต่อชวเลข:

CONCATENATEฟังก์ชั่นสามารถถูกแทนที่ด้วย&สัญลักษณ์ 100% ของเวลาที่นานมากเป็นอาร์กิวเมนต์แรกเป็นสตริงหรือเซลล์

ตัวอย่าง:
=CONCATENATE(A1,B1)
อาจย่อให้เล็กลง
=A1&B1


9

Vectorization กับอาร์เรย์

เมื่อใดก็ตามที่ฟังก์ชั่นใช้อาเรย์เป็นอาร์กิวเมนต์แทนที่จะเป็นซิงเกิลฟังก์ชันนั้นจะส่งออกอาเรย์ด้วยค่าผลลัพธ์ไปยังดัชนีที่สอดคล้องกัน

ตัวอย่าง:
=LEN(A1)+LEN(B2)+LEN(C3)
สามารถถูกแทนที่ด้วย
=SUM(LEN({A1,B2,C3}))


1
กระบวนการนี้มักเรียกว่า "vectorization" หากหน่วยความจำของฉันรองรับฉันได้ดี
Conor O'Brien

@ ConorO'Brien ขอบคุณ! ฉันเปลี่ยนคำตอบแล้ว!

2

การแปลงตัวเลขเป็นข้อความ:

นี่เป็นเคล็ดลับง่ายๆ แต่อาจมีประโยชน์สำหรับบางคน ...

  • หากคุณต้องการแปลงตัวเลขเป็นข้อความจากภายในสูตรให้ใช้ตัวดำเนินการต่อข้อมูลเพื่อรวมสองส่วนของตัวเลขเป็นสตริง (เช่น1&23)
  • หากคุณต้องการแปลงตัวเลขเป็นข้อความเพื่อใช้โดยการอ้างอิงเซลล์ (เช่นA1) ให้เปลี่ยนรูปแบบตัวเลขของเซลล์เป็นTextเพื่อกำจัดความต้องการไบต์พิเศษ
  • ดูแผนภูมิด้านล่างสำหรับการเปรียบเทียบวิธีการตัวเลขกับข้อความ

แผนภูมิอ้างอิงด่วน:

+-------------------------------------------------------------------------------------+
|   | A               | B        | C         | D                | E                   |
|-------------------------------------------------------------------------------------|
| 1 | Formula         | Bytes    | Result    | ISTEXT(cell)¹    | ISTEXT(formula)²    |
|-------------------------------------------------------------------------------------|
| 2 | =TEXT(123,0)    | 12       | 123       | TRUE             | TRUE                |
| 3 | ="123"          | 6        | 123       | TRUE             | TRUE                |
| 4 | =1&23           | 5        | 123       | TRUE             | TRUE                |
| 5 | '123            | 4        | 123       | TRUE             | NOT VALID           |
| 6 | 123             | 3        | 123       | TRUE             | FALSE               |
| 7 | 123             | 3        | 123       | FALSE            | FALSE               |
+-------------------------------------------------------------------------------------+

Note: The result for cell C6 has been formatted as text, whereas the result for C7 has not.

¹ Denotes =ISTEXT(C2), =ISTEXT(C3), =ISTEXT(C4), etc.
² Denotes =ISTEXT(TEXT(123,0)), =ISTEXT("123"), =ISTEXT(1&23), etc.

1

Vectorization ของอาร์เรย์ของเซลล์:

คำแนะนำVectorization ด้วยอาร์เรย์แสดงวิธีที่คุณสามารถตีฟังก์ชันด้วยอาร์เรย์โดยใช้การจัดรูปแบบเฉพาะภายในอาร์เรย์ มันเป็นไปได้ที่จะทำสิ่งเดียวกันกับเซลล์และจะช่วยให้คุณประหยัดหลายไบต์ในระยะยาว สมมติว่าคุณมีแผ่นงานต่อไปนี้:

แผ่นตัวอย่าง

และเราต้องการค้นหาอายุการเก็บรักษาที่สูงที่สุดของผลไม้

หากไม่มี Vectorizationization หนึ่งอาจใช้สองสูตรดังนี้: ป้อนคำอธิบายรูปภาพที่นี่

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

แต่เราสามารถวางฟังก์ชันในคอลัมน์ D ขวาด้วยสูตรใน E2 ในการทำเช่นนี้คุณต้องแทนที่ (ในกรณีนี้ B2 และ C2) ตัวแปรของคุณด้วยอาร์เรย์สำหรับช่วงที่คุณต้องการทดสอบ ดังนั้นสูตรของคุณจะกลายเป็น:
ป้อนคำอธิบายรูปภาพที่นี่

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



0

ISBLANK () ชวเลข:

แทนที่จะใช้=ISBLANK(A1)ให้ใช้=A1=0เพื่อพิจารณาว่าเซลล์ (เช่นA1) ว่างเปล่าหรือไม่

หมายเหตุ:ทางลัดนี้จะไม่ทำงานถ้าเซลล์ มีA1 ในกรณีที่คุณจะต้องใช้0 =A1=""


0

ย่อชื่อแผ่นงาน

ถ้าคุณเปลี่ยนชื่อSheet2ไปSอ้างอิงแล้วจะกลายเป็นSheet2!a0S!a0

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