ฉันจะจับคู่คำสั่งซื้อ/ขายใน Excel ได้อย่างไร

ฉันมีสเปรดชีต 4 คอลัมน์ (ประเภทรายการ ประเภทคำสั่งซื้อ ราคา และปริมาณ) การจัดเรียงสเปรดชีตทำงานเหมือนกับหนังสือซื้อขาย

สิ่งที่ฉันพยายามทำคือสร้างสูตรสำหรับการจับคู่ประเภทคำสั่งซื้อขายและซื้อจากรายการคำสั่งซื้อตามปริมาณ %

ตัวอย่างเช่น หากมีคำสั่งซื้อส้ม 100 ลูกที่ราคา $12 และมีคำสั่งซื้อส้ม 100 ลูกที่ราคา $13 อยู่ ทั้งคู่จะมีค่าที่ตรงกัน 0%

หากมีคำสั่งซื้อแอปเปิ้ล 100 ลูกที่ราคา $12 และมีคำสั่งซื้อขายแอปเปิ้ล 85 ลูกที่ราคา $11 คอลัมน์การจับคู่คำสั่งซื้อจะมี 100% และคอลัมน์การจับคู่คำสั่งซื้อจะมี 85%

จากนั้นฉันจะจัดลำดับความสำคัญของการจับคู่ตามราคาต่ำสุด

ตัวอย่างเช่น:

Item Type        Order Type     Price     Volume     Match
----------       ----------    -------   --------   -------

Orange            SELL          $13        100       0%
Orange            BUY           $12        100       0%       
Apple             SELL          $11         85       100%
Apple             BUY           $12        100       85%

ฉันได้พยายามที่จะรวมคำสั่ง IF ที่ซับซ้อนไม่รู้จบเข้าด้วยกัน (VLOOKUPS, INDEX, MATCH) แต่มีความซับซ้อนมากเกินไปและเริ่มไม่สมเหตุสมผล

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

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมจริงๆ


person Jared Smith    schedule 06.04.2019    source แหล่งที่มา
comment
ยินดีต้อนรับสู่ stackoverflow ไม่มีสูตรเล็กๆ น้อยๆ ที่จะทำแบบนั้นได้ สิ่งที่คุณสามารถทำได้คือใช้ SUMIFS เพื่อรับปริมาณของแต่ละคำสั่งซื้อ จากนั้นใช้ IF เพื่อกำหนดค่าของคอลัมน์ที่ตรงกัน อีกทางเลือกหนึ่งคือการเขียนฟังก์ชัน VBA แบบกำหนดเองเพื่อคำนวณ ซึ่งในกรณีนี้ความซับซ้อนจะถูกย้ายไปยัง VBA และคุณอาจมีสูตรง่ายๆ บนสเปรดชีตของคุณ   -  person GCSDC    schedule 07.04.2019
comment
ขอขอบคุณ กสทช. ฉันลองอะไรทำนองนั้นซึ่งก็คือ: =IF(B3:B=B2,IF(C3:C‹›C2,SUMIF(D3:D,‹=D2))) แต่ไม่สามารถทำงานได้ . ไม่แน่ใจว่ามันสมเหตุสมผลหรือเปล่า :) แต่แนวคิดก็คือ หากรายการตรงกันและประเภทคำสั่งซื้อไม่ตรงกัน ให้รวมตัวเลขเข้าด้วยกัน   -  person Jared Smith    schedule 07.04.2019


คำตอบ (1)


คุณสามารถใช้สูตรนี้ (โดยพิจารณาว่าข้อมูลของคุณเริ่มต้นในเซลล์ A1):

=IF(SUMIFS($D$2:$D$5;$A$2:$A$5;A2;$B$2:$B$5;"SELL") = SUMIFS($D$2:$D$5;$A$2:$A$5;A2;$B$2:$B$5;"BUY"); 0; SUMIFS($D$2:$D$5;$A$2:$A$5;A2;$B$2:$B$5;IF(B2="SELL";"BUY";"SELL")))

ซึ่งจะตรวจสอบว่าผลรวมของปริมาณการซื้อและขายสำหรับประเภทรายการเท่ากันหรือไม่ หากเป็นเช่นนั้น ให้หาผลรวมของปริมาตรของการดำเนินการตรงกันข้าม ถ้าไม่เช่นนั้น ให้คืนค่า 0;

คุณยังสามารถใช้ช่วงที่มีชื่อเพื่อทำให้สูตรสะอาดและชัดเจนยิ่งขึ้น

person GCSDC    schedule 06.04.2019