如何計算2個查詢結果OR起來,excel vba

2013-11-20 6:54 pm
在 excel 中有定義 2 個欄位資料 (假設為 A1:A10, B1:B10).
請問如何計算出, (A1:A10 > 5) or (B1:B10 > 3) 的個數 (是一列一列去比).
亦即, (A1>5 or B1>3), (A2>5 or B2>3), ....

是否可以用函數方式計算出來?
更新1:

我有想到一個數學交聯集的作法: countif(A1:A10, ">5") + countifs(B1:B10, ">3") - countifs(A1:A10, ">5", B1:B10, ">3"). 不知是否還有更簡單的作法?

更新2:

之前有學過一個概念: 在輸入完公式後, 按 ctrl+shift+enter 可以將公式中的向量參數變成一個一個套用公式. 所以, 不知是不是可以使用這個作法, 使公式變的更簡單一點?

回答 (3)

2013-11-25 5:54 pm
✔ 最佳答案
=SUM(IF(A1:A10>5,1,0))+SUM(IF(B1:B10>3,1,0))
為陣列公式按住ctrl+shift+enter鍵

2013-11-20 19:00:50 補充:
=SUM((A1:A10>5)+(B1:B10>3))
陣列公式

2013-11-25 09:54:35 補充:
=SUM((A1:A10>5)+(B1:B10>3))
陣列公式 (輸入完按住Ctrl+Shift+Enter鍵)
2013-11-21 2:23 pm
陣列公式
=SUM(IF(((A1:A10>5)+(B1:B10>3))>0,1,0))
~
一般公式
=SUMPRODUCT((A1:A10>5)+(B1:B10>3)-(A1:A10>5)*(B1:B10>3))

2013-11-22 21:51:29 補充:
cjw 大大
請上答
2013-11-21 2:29 am
OJW, 感謝您的意見. 這個算法會重覆算到2個條件都成立的部份. 不過, 這個寫法提醒我先用IF把原向量作轉換. 我會再試試看.

2013-11-20 18:38:07 補充:
想試試這個寫法, COUNTIFS(IF(OR(A$1:A10>5, B$1:B10>3), 1, 0), ">0"). 但發現, 陣列公式好像只能用一次, 在OR時, 答案就不是向量了

2013-11-21 10:35:20 補充:
CJW, 冰淇淋, 感謝2位的回覆, 陣列公式果然較精簡. 我已經試成功了.


收錄日期: 2021-04-27 20:44:24
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20131120000010KK01632

檢視 Wayback Machine 備份