สูตร Excel เพื่อแปลงค่าบูลีนเป็น {0, 1}


25

สูตร Excel คือการแปลงค่าบูลีน{FALSE, TRUE}เป็น{0, 1}อย่างไร

=IF(cond,1,0)เผื่อว่ามีหนึ่งสั้นกว่า


1
ที่น่าสนใจ =a1+a2จะส่งคืนผลรวมเชิงตัวเลขของตรรกะ แต่=sum(a1:a2)จะไม่ Excel 2013
Carl Witthoft

คำตอบ:


37

คุณสามารถทำได้โดยการคัดเลือกนักแสดง ฟังก์ชัน "int" จะปัดเศษเป็นจำนวนเต็มที่ใกล้เคียงที่สุด หากค่าบูลีนอยู่ใน A1 สูตรจะเป็น:

=INT(A1)

คล้ายกันนี้=ROUND(A1,0)ทำสิ่งเดียวกันในบริบทนี้
dangowans

หรือ=CEILING(A1,1)
dangowans

ขอบคุณนักแสดงเป็นวิธี "มาตรฐาน" ที่ฉันมองหา มันไม่ได้เกิดขึ้นกับฉันที่จะลองสิ่งนั้นจริง ๆ แล้วฉันคาดหวังว่ามันจะเป็น "ยากกว่า" ...
anol

13

--เป็นวิธีที่พบได้บ่อยที่สุดในการแปลงบูลีนให้เป็นแบบอิน - นั่นคือเหตุผลที่คุณเห็นฟังก์ชั่นที่มี--อยู่ในนั้นด้วยเหตุผลอย่างนี้ มันจะเปลี่ยนอาร์เรย์ของ {TRUE, FALSE, FALSE} เป็น {1,0,0} ซึ่งสามารถใช้เพื่อคูณอาร์เรย์อื่น ๆ

ตัวอย่าง:

ส่งคืนยอดขายรวมจากภูมิภาคที่ต่ำกว่า 9:

ทีมขาย
1 $ 20
2 $ 30
11 $ 90

สูตร:

=SUMPRODUCT(--(A2:A4<=9),B2:B4)

การคำนวณ

=SUMPRODUCT(--(True,True,False),($20,$30,$90))
=SUMPRODUCT((1,1,0),($20,$30,$90))
=1 * $20 + 1 * $30 + 0 * $90
=$20 + $30 + $0
=$50

@ fixer1234 การแก้ไขนั้นช่วยได้บ้าง
SeanC

ฉันเคยเห็นวิธีบนเว็บ--แต่ฉันต้องยอมรับว่าการใช้สูตรINTนั้นชัดเจนและสง่างามกว่ามาก :)
รัก. โดยพระเยซูคริสต์

7

ทวีคูณด้วย '1' อดีต True * 1 = 1 และ False * 1 = 0

ตัวอย่างเช่นหากเซลล์ A1 มีค่าบูลีนในเซลล์ข้างเคียงให้ป้อนสูตร:

=A1*1

หมายเหตุ: - จริง True + 0 และ True / 1 มีผลเหมือนกัน


สิ่งนี้ไม่สามารถอ่านได้มากขึ้น แต่จะ "สั้นกว่า" ในสูตรของคำถาม
dangowans

เยี่ยมมาก แต่นั่นหมายความว่าไม่มีสูตรในตัวสำหรับการแปลง บางอย่างเช่น "BOOLVAL" หรือ "BOOLINT"?
anol

มีประโยชน์มาก แต่ฉันกำลังมองหาโซลูชันที่ "เหมาะสม" มากกว่าเช่น @ dangowans ดังนั้นฉันจะยอมรับโซลูชันของเขา ขอขอบคุณ!
anol

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