Re: [算表] 計算大於等於上一個數值的數目有幾個
弱弱的解法:
檔案如下
https://docs.google.com/leaf?id=0Bw1Y_fV1cmOaNzZhMjIyY2ItNTIwYy00NjkyLTg3YWYtOTY0MGNkZjYxYjE3&hl=zh_TW
縮 http://ppt.cc/ieEf
左上角有可以下載的超連結~
產值的公式
分頁1:WXY這三欄~
分頁2:WX兩欄~
基本上原po的需求如下:
現有資料六千多列
每六十列取一特定值
此值為衰減前的數量
所以六千列就要取一百個值~
共有20個分頁 每個分頁的列數不一 但欄位是一樣的
欄位在w欄之後開始是空白無資料的
以下為不才的土法煉鋼法:
有兩個分頁
兩種解法 方法稍微不同 但是都可以得到一樣的值
第二個分頁的解法會比較簡潔 不過不一定適合 要看你要的資料是什麼樣子而定
a.想法:
1.w欄
資料由第二列開始(第一列是標題)
第一個比對資料區塊為B2:B61
邊界條件:
BC1.其中第一列一定會取
以 ROW() 和 MOD() 判別此列是否為資料簇的首列
ROW()值 是不是2,62,122....
如果是首列 那就傳出1
不是的話就進行下面的判別
BC2.第60列要和第59列比較(不能和第61列比較,因為分屬不同資料簇)
不是資料簇的首列 進行判斷
判斷此列的B欄值 與上一列的B欄值大小關係
若不小於上一列 傳出1
BC3.如果同簇資料已現過0(已經衰減過了),則不論大小一律傳出0
比較同簇資料上列的資料是否為0,若為0,則傳出0
若上列資料不為0 則傳出BC2的1
註:這邊BC2 BC3順序可以換 但是傳出1或0要自己換一下
2.x欄(分頁1)
判別是不是資料簇首列
如果是首列 就統計這一簇的1的總和
統計就比較簡單 就用 INDIRECT() 和 COUNTIF() 或 SUM()組合一下
至於INDIRECT到哪一簇 就用ROW()去做一些簡單的加減乘除得到的
3.y欄(分頁1)
這是稍微集中一下x欄資料
也是用簡單的INDIRECT()和ROW()處理
在分頁2 也就是另外一種解法
是把分頁1的 x欄 跟 y欄 融在一起
然後有一些寫法變了 不過都一樣的結果啦~
分頁1 分頁2
-----------------------------------------
w欄判斷 >= <
統計方法 COUNTIF() SUM()
分頁2有用一下別的公式 COUNTA()
統計總資料列有幾列
超過的就讓它空白(不然會變成0值)
基本上就是這樣啦~
===========================================================================
最後列一下公式:
分頁一:
w2=IF(MOD(ROW(),60)=2,1,IF(B2>=B1,IF(W1=0,0,1),0))
x2=IF(MOD(ROW(),60)=2,
COUNTIF(
INDIRECT("R"&ROW()&"C"&COLUMN()-1&":R"&ROW()+59&"C"&COLUMN()-1,0),
1),
"")
y2=INDIRECT("R"&2+(ROW()-2)*60&"C"&COLUMN()-1,0)
z2=2+(ROW()-2)*60&"~"&61+(ROW()-2)*60
分頁二:
w2=IF(MOD(ROW(),60)=2,1,IF(B2<B1,0,IF(W1=0,0,1)))
x2=IF(INT(COUNTA(B:B)/60)+2>ROW(),
SUM(
INDIRECT(
"R"&2+(ROW()-2)*60&"C"&COLUMN()-1&
":R"&61+(ROW()-2)*60&"C"&COLUMN()-1,0
)
),
"")
y2=IF(COUNTA(B:B)>61+(ROW()-2)*60,2+(ROW()-2)*60&"~"&61+(ROW()-2)*60,"")
---
還是不會寫陣列 orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.233.171.39
※ 編輯: Rplus 來自: 125.233.171.39 (04/04 01:33)
→
04/04 02:03, , 1F
04/04 02:03, 1F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
Office 近期熱門文章
PTT數位生活區 即時熱門文章