Page 1 of 1

การใช้ {}

Posted: Fri Feb 01, 2019 9:32 pm
by Supachok
เรียนท่านอาจารย์

คือไม่สามารถเข้าใจการใช้งานของ {}

ตัวอย่างที่เห็นมา
=SUMPRODUCT({-0.000694444444444444;-0.00208333333333333},{1;-1})
=countifs(a1:a10,1,b1:b10,2,c1:c10,{3;""}

อยากให้ช่วยอธิบายการใช้งานและโครงสร้าง {}
ขอบคุณครับ :?:

Re: การใช้ {}

Posted: Fri Feb 01, 2019 9:49 pm
by snasui
:D ค่าใด ๆ ที่อยู่ในเครื่องหมาย {} ในลักษณะการคีย์ลงไปตรง ๆ คือค่าคงที่ Array สามารถคำนวณได้เช่นเดียวกับค่าในเซลล์

หากแต่ละส่วนประกอบคั่นกันด้วยเครื่องหมาย , แสดงว่าแต่ละส่วนประกอบอยู่คนละคอลัมน์ หากคั่นด้วยเครื่องหมาย ; แสดงว่าส่วนประกอบอยู่คนละบรรทัด ค่าคงที่ Array สามารถมีหลายคอลัมน์ หลายบรรทัดได้ตามต้องการครับ

จากสูตร

=SUMPRODUCT({-0.000694444444444444;-0.00208333333333333},{1;-1}) หมายถึงให้หาผลรวมของผลคูณระหว่าง ({-0.000694444444444444;-0.00208333333333333} และ {1;-1}

โปรแกรมจะนำส่วนประกอบลำดับเดียวกันของ Array ทั้งสองชุดมาคูุณกัน ภาพรวมสูตรจะมีลักษณะเป็น

=Sumproduct({-0.000694444444444444*1;-0.00208333333333333*-1}

และจะได้เป็น

=Sumproduct({-0.000694444444444444;0.00208333333333333})

ผลลัพธ์จะได้เป็น

0.00138888888888889

ส่วน =countifs(a1:a10,1,b1:b10,2,c1:c10,{3;""} หมายถึงการนับแบบหลายเงื่อนไข

จะต้องครอบด้วย Sum เป็นอย่างน้อยจึงจะให้ผลลัพธ์ที่ถูกต้อง เช่น =Sum(countifs(a1:a10,1,b1:b10,2,c1:c10,{3;""})

หากเขียนเดี่ยว ๆ เช่นที่ถามมาจะไม่ได้คำตอบที่ต้องการครับ

ความหมายคือ ให้รวมค่าใน A1:A10 โดยมี 2 เงื่อนไขคือ B1:B10 มีค่าเท่ากับ 2 และ C1:C10 มีค่าใดค่าหนึ่งระหว่าง 3 และ ค่าว่าง

Re: การใช้ {}

Posted: Sat Feb 02, 2019 2:20 pm
by Supachok
เรียน ท่านอาจารย์

=Sumproduct({-0.000694444444444444*1;-0.00208333333333333*-1}
สงสัยว่าทำไมสูตรจึงนำไปคูณ

ให้รวมค่าใน A1:A10 โดยมี 2 เงื่อนไขคือ B1:B10 มีค่าเท่ากับ 2 และ C1:C10 มีค่าใดค่าหนึ่งระหว่าง 3 และ ค่าว่าง
ลองลบข้อมูลใน column A ผลลัพธ์เกิดเปลี่ยนค่า

ค่าปกติ sum แล้ว =SUM({1;1}) 1 ตัวแรกเกิดจากข้อมูลช่วงใด และ 1 ตัวที่สองเกิดจากข้อมูลใด
ค่าที่มใส่ 1 , 2 , 3 =SUM({1;1} เกิดจากลบ 3 ตัวใดตัวหนึ่ง
=SUM({2;0} เกิดจากใส่ 3 ทั้ง 2 ค่า

Re: การใช้ {}

Posted: Sat Feb 02, 2019 6:18 pm
by Bo_ry
=SUMPRODUCT ถ้ามาจากข้อนี้
https://www.snasui.com/viewtopic.php?f= ... 0e09433bd2

=SUMPRODUCT(-SUBSTITUTE(A2:A3,"T"," "),{1;-1})
คือเอาเวลาจาก A3 - A2 คูณ 1 กับ -1 เพื่อหาผลต่าง
= -A2*+1+ -A3*-1
= -A2 + A3
= A3 -A2

แบบปกติก็ต้อง SUBSTITUTE สองรอบมาลบกัน
= -SUBSTITUTE(A2,"T"," ")*+1 + -SUBSTITUTE(A3,"T"," ")*-1

ทำให้สั้นลงก็จะเป็น
=SUMPRODUCT(-SUBSTITUTE(A2:A3,"T"," ")*{1; -1}) หรือ
=SUMPRODUCT(-SUBSTITUTE(A2:A3,"T"," "),{1; -1})


=sum(countifs(a1:a10,1,b1:b10,2,c1:c10,{3;""}))
จะได้ผลรวมของสองค่าจาก
=Sum( countifs(a1:a10,1,b1:b10,2,c1:c10,3) ; countifs(a1:a10,1,b1:b10,2,c1:c10,""))