
我有一張包含數千組數字的電子表格。也就是說,有十列,每列都有一個數字 - 這些數字有數千行。
我想做的是檢查每一行的數字是否在增加。例如,假設這是第一行(每個數字都是單獨的欄位):
13. 17. 25. 37. 39. 40. 53. 61. 68. 71
正如您所看到的,數字都在增加。現在讓我們想像這是第二行:
13 5. 3. 18. 34. 17. 49. 83. 63. 71
在這種情況下,起始數字和結束數字與第一組數字相同,但所採取的路徑卻截然不同。
我想要一個公式來評估成長的持續性。
有任何想法嗎?
答案1
=IFERROR(IFS(B6<A6,FALSE,C6<B6,FALSE,D6<C6,FALSE,E6<D6,FALSE,F6<E6,FALSE,G6<F6,FALSE,H6<G6,FALSE,I6<H6,FALSE,J6<I6,FALSE),TRUE)
我相信這將是最簡單的方法。
IFS 將每個數字與先前的數字進行比較,如果低於先前的數字,則傳回 FALSE。
如果所有數字都大於前一個數字,則 IFS 將不會產生輸出,從而導致 NA 錯誤。
ISERROR 會將 NA Error 轉換為 TRUE,這表示數字都在增加。
要取得有多少個數字大於序列中前一個數字的計數:
=COUNTIF(B11,">" & A11)+COUNTIF(C11,">" & B11)+COUNTIF(D11,">" & C11)+COUNTIF(E11,">" & D11)+COUNTIF(F11,">" & E11)+COUNTIF(G11,">" & F11)+COUNTIF(H11,">" & G11)+COUNTIF(I11,">" & H11)+COUNTIF(J11,">" & I11)
每次計數都會將當前數字與先前的數字進行比較,並且僅在數字較大時才進行計數,然後將所有計數加在一起。
答案2
您可以使用陣列公式來完成此操作:
假設您的資料位於 中A1:J1
,然後在儲存格中輸入以下公式=AND(B1:J1>A1:I1)
,然後按Ctrl+ Shift+Enter建立陣列公式 - 請注意,Excel 會{}
自動將公式換行(您無法手動進行換行!)。在 Google Sheets 中,您可以使用函數ArrayFormula
內部AND
而不是 Excel 快捷方式:AND(ArrayFormula(B1:J1>A1:I1))
。
這將對 進行逐元素計算>
,然後檢查它們是否都為真。請注意,兩個範圍偏移了一個單元格,但長度相同,因此B1
和A1
將進行比較、C1
比較B1
,依此類推。然後結果數組將被傳入以AND
檢查它們是否都為真。
為第一行插入數組公式後,如果有多行,只需向下拖曳每行的公式即可。
或者,如果由於某種原因您不想使用數組,則可以在不添加其他單元格範圍的情況下執行此操作,而無需在數字列表下方或旁邊(或任何地方,老實說)添加其他單元格範圍。在這個額外的儲存格範圍內,您可以對每個儲存格進行比較。
資料從 開始A1
,然後在儲存格 中B2
新增公式(B1 > A1)
,然後拖曳公式以符合資料的寬度(公式將自動更新參考)。最後,您只需要檢查所有這些單元格是否都為真,這可以通過AND(B2:J2)
.
答案3
由於您標記了 google-spreadsheets,因此您也可以使用 anArrayFormula
來簡化一個公式:
=AND(ARRAYFORMULA(B1:J1>A1:I1))
如果行數發生變化,您可以相應地調整J1
和。I1
如果右側的所有欄位均為空白,=AND(ARRAYFORMULA((B1:Z1>A1:Y1)+(ISBLANK(B1:Z1))))
則只要後面的欄位均為空白,您就可以自動處理最多 26 列。
答案4
如果您有的話,這些答案將會起作用動態數組公式在您的 Excel 版本中可用。
新的、更簡單的答案:
您可以使用動態陣列公式來檢查每個元素是否嚴格小於另一個陣列中的元素。
=AND((A1:I1) < (B1:J1))
這很好也很簡單,基本上就是說,isA1 < B1
等等B1 < C1
到陣列的最後。
技巧是我們偏移兩個列表,以便將每個項目與原始數組中的下一個值進行比較。
所以我們要比較A1:I1
-B1:J1
所以第一個數組是從第一項到倒數第二項,第二個數組是從第二項到最後一項。
原答案:
如果允許列表按>=
順序排列(與嚴格順序相反>
),即 if1, 2, 3, 3, 4
也是有效的。
您可以對值進行排序並將排序後的值與原始值進行比較。
如果原始值按升序排列,則排序清單將等於原始清單。
這將按列排序,比較每個值,然後將AND()
清單轉換為單一結果:
=AND(SORT(A1:J1,1,1,TRUE)=A1:J1)
如果您要比較單列數據,那麼情況會稍微簡單一些:
=AND(SORT(A1:A10)=A1:A10)