Excel: แยกค่าที่คั่นด้วยเครื่องหมายจุลภาคและส่งคืนค่าที่เพิ่มจากรายการแยกต่างหาก


0

ฉันมีสถานการณ์ที่ผู้ใช้จะให้ชุดตัวเลขคั่นด้วยเครื่องหมายจุลภาคและกรอกรายการแยกต่างหากของค่าใช้จ่ายการค้นหา เมื่อผู้ใช้ใส่ค่าเซลล์ที่แยกต่างหากจะกลับมาเป็นมูลค่ารวมของสิ่งนั้นซึ่งจะมีลักษณะดังนี้:

[ค่าอินพุตของผู้ใช้] [มูลค่าที่ส่งคืนของต้นทุนเพิ่ม]

เซลล์ค้นหาค่าใช้จ่าย

  1. $ 100
  2. $ 200
  3. $ 300
  4. $ 400 เป็นต้น

ตัวอย่างของการป้อนข้อมูลของผู้ใช้อาจเป็น: [1, 4] ซึ่งควรกลับ [$ 500]

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

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

ป้อนคำอธิบายรูปภาพที่นี่

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

คำตอบ:


0

สูตรอาร์เรย์นี้ทำงานร่วมกับตัวเลขสำหรับCO# สตริง IF จากนั้นคุณต้องลบ--ในสูตร

ใส่นี่ใน D2:

=IF(LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1>=ROW($A1),INDEX(A:A,MATCH(--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW($A1)-1)*99+1,99)),$A:$A,0)),IF(ROW($A1)=LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+2,IF(COLUMN(A$1) = 1, "$",SUM(INDEX($B:$B,MATCH(N(IF(1,--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW(INDEX($AAB:$AAB,1):INDEX($AAB:$AAB,LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1))-1)*99+1,99)))),$A:$A,0)))),""))

ยืนยันด้วย Ctrl-Shift-Enter แทน Enter จากนั้นคัดลอกไปหนึ่งคอลัมน์และลงเพียงพอที่จะจัดการแถวที่จำเป็นทั้งหมด

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

มันจะปรับขนาดอัตโนมัติตามต้องการ

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


ว้าวฉันไม่สามารถพูดได้ว่าฉันเข้าใจทุกสิ่งที่คุณทำกับสูตรนั้น ... แต่มันก็ทำตามที่ฉันต้องการ บางคนดูสมเหตุสมผล แต่มันก็รุนแรง เป็นไปได้ไหมที่ฉันจะพังเพื่อที่ฉันจะได้รู้ว่าเกิดอะไรขึ้น? ฉันใช้สิ่งนี้ร่วมกับ = LOOKUP (2,1 / (E: E <> ""), E: E) เพื่อจับค่าทั้งหมดและใช้ที่อื่นในไฟล์ของฉัน ขอบคุณมาก.
Ashton Fraess

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