相當於計數嗎?我試圖找到一個與 Excel 的 Countif 函數等效的 JMP 公式函數,它指向一列並傳回與目前行中的值相同的行數,就像您對該行進行摘要時得到的結果一樣。
換句話說,如果我有一個 1000 行的表,並且 27 行中的列顏色設置為“紫色”,我需要一個新行的公式,該公式為這些行返回 27(以及其他行的適用值)
(我確信它就在這裡,但是**如果我能找到它的話**)
JMP 17、macOS
大規模客製化回覆: Countif 等效嗎?關閉,我想。 我從來沒有使用過 C++ 程式碼,但我相信在第一次呼叫(通常是第 1 行)時,它會預處理所有行以快取所有可能的按值答案。 然後,所有後續行都會從該按值快取得到回應。 (如果沒有緩存,N 行的時間將是 order(N^2),而緩存只是 order(N) - 線性時間。)
回覆: Countif 等效嗎?這是有道理的,但是 Col Sum() 函數正在迭代某些東西...
我想像它會迭代與 byVar 列中目前值相符的行,評估每個行的表達式,然後將這些評估的所有結果相加。
我有這個權利嗎?如果是這樣,那麼 Col Sum() 腳本索引文件中的措辭對我非常有幫助。
回覆: Countif 等效嗎?將第一個參數視為一個表達式。 表達式可以是
- 42
- :高度
- :身高 *2 > :體重
- if ( :身高 *2 > :體重、年齡、99 )
- if (:身高>60 & :體重>100, 1, 0)
所有這些都是在當前行的上下文中進行評估,因此使用當前行的高度、重量和年齡值。 > 運算子傳回 1(表示 true)和 0(表示 false),因此也可以求和。 if 對每一行求值為“age”或“99”,然後將其求和。 並且僅使用 :height 也會被評估以傳回目前行的值。
我承認我看了@jthi在我明白之前先舉個例子。 如果您將其建置到程式碼中,請為接下來需要維護它的人員添加註解!
回覆: Countif 等效嗎?@Craige_Hales因此,如果第一個條目是列對象,則 Col Sum() 函數會遍歷列中的值(尊重 byVar 設定)對值求和,但如果第一個條目只是一個數字,它只使用該數字?
第一個條目可以是任何傳回值的表達式嗎?
它也可以傳回一個類似於提供列物件的被跳過的清單嗎?如果該清單的長度與 byVar 清單的長度不符怎麼辦?
JMP 的這種內部行為很有趣,我很想了解更多信息,但我在文檔中找不到任何內容來幫助我開發一個關於它在這種情況下所做的事情的心理模型.... ..
請注意,countif 是一個 Excel 函數,用於對符合某些條件的儲存格範圍內的所有項目進行計數。我不認為 Col Sum() 完全可以做到這一點,例如,似乎沒有辦法使用它來計算 col1 > 7 和 col2 == 15 的情況數量。
回覆: Countif 等效嗎?@奧黛麗_舒爾也許是@jthi可以將範例新增至腳本索引並附上解釋,例如「列公式的第一個參數是為每行計算的表達式。 它通常是一列,對列的值求和,但在本例中它是一個常數 1,對行數求和。 這在本例中很有用,因為第二個參數是按列,這使得每個按值求和。”
添加 countif 關鍵字可能會幫助別人在將來找到它(我不精通 excel,所以也許先查找 countif...)
回覆: Countif 等效嗎?它使用 1 作為行的值,而不是從某些列的行中找到的特定值。
編輯:在這種情況下,我認為使用 Col Number(:Column 1, :Column 1) 也應該有效。
回覆: Countif 等效嗎?@jthi :幫助文本說 Col Sum() 的第一個參數是“xCol”,但其中只有一個“1”。JMP 在這裡對 1 號做什麼?
(這非常有用,我們今天也有這個問題。)
回覆: Countif 等效嗎?您指的是哪個幫助文本?它有什麼不直觀的地方?Col Sum(name,<依變數, ...>)
另外,從腳本索引(可從 JMP 的「說明」功能表中找到)中,您可以獲得可執行的演示腳本,這些腳本有時會很有幫助

回覆: Countif 等效嗎?正是如此——謝謝!
(而且關於 Col Sum 的 JMP 幫助文本確實不直觀......)
回覆: Countif 等效嗎?像這樣的東西嗎?

Col Sum(1, :Column 1)
回覆: Countif 等效嗎?@Audrey_Shull如果您計劃在未來版本的腳本索引或線上幫助中添加@jthi的範例,請同時添加一段關於
https://community.jmp.com/t5/Discussions/JMP-equivalent-of-Excel-s-COUNTIF-function/mp/783500/highlight/true#M96784