在列中找到第一個符合條件的元素嗨,我有一個包含 2 列的數據:group 和 score,我想計算第 3 列稱為 first,它返回“不是 10000000000 的組的第一個分數。所以在這個示例數據中,group a = 0,group b =53。由於 c 組僅包含 10000000000,因此沒有顯示任何內容。
有人可以幫我用這個專欄的 jmp 公式而不是 jsl 嗎? 太感謝了!
| 團體 | 分數 | 第一的 |
| 一種 | 10000000000 | 0 |
| 一種 | 0 | 0 |
| 一種 | 100 | 0 |
| 一種 | 10000000000 | 0 |
| 一種 | 8個 | 0 |
| 一種 | 10000000000 | 0 |
| 一種 | 10000000000 | 0 |
| 一種 | 10000000000 | 0 |
| b | 53 | 53 |
| b | 10000000000 | 53 |
| b | 1個 | 53 |
| C | 10000000000 | . |
| C | 10000000000 | . |
| C | 10000000000 | . |
分析Re: 在一列中找到第一個有條件的元素這是解決問題的另一種方法。這種方法是一個腳本。它應該比以前的單一公式列方法更有效。它首先找到第一個值,將它們提取到一個新表中,然後使用更新平台將這些值合併回原始數據表中。
names default to here(1);
dt=current data table();
// Create a column that finds the first values
dt<<NEW column=""></NEW>
Re: 在一列中找到第一個有條件的元素那是很多行。 此公式可能需要較少的內存。 它假定第一個值 ≠ 10000000000 始終小於 10000000000。
If(Col Min(:score, :group) == 10000000000,
.,
Col Min(
:score[Col Min(Row(), :group, :score == 10000000000)],
:group
)
)
Re: 在一列中找到第一個有條件的元素謝謝吉姆! 我將你的公式直接粘貼到我的數據中並再次檢查 - 它適用於前 7000 行,但從那以後都是“。”,沒有顯示第一個不是 10000000 的數字。 當我輸入公式時,它確實運行了很長時間,所以我不得不按 esc 鍵來解凍 jmp。這是導致這種情況發生的原因嗎? 我總共有大約 700 萬行。Re: 在一列中找到第一個有條件的元素公式的屏幕轉儲不允許我查看您是否正確引用了列。也就是說,您是否在列名前面放置了一個“:”,而不是在curgroup 和value 前面?
你收到什麼錯誤信息?
當您說它無法正常工作時,那是什麼意思?沒有得到正確的值,或者它沒有給你任何結果?
我已將您的示例數據表附加到名為 Jim 的公式的列中,該列已將我的公式應用於數據表。這樣您就可以擁有一個工作版本的公式,用於與您嘗試創建的內容進行比較。
Re: 在一列中找到第一個有條件的元素嗨吉姆,謝謝你的回答。 我將它粘貼到公式中並替換了列名,但它沒有產生正確的答案。 你能幫我看看下面的截圖嗎? 謝謝你。

Re: 在一列中找到第一個有條件的元素這是編寫公式的一種方法
curgroup = :group;
value = :score[Min(
Current Data Table() << get rows where(
:group == curgroup & :score != 10000000000
)
)];