返回列表 上一主題 發帖

跨工作表LINK(讀取)某個指定位置的值,有簡單的方法嗎

回復  u7490074

檔案我看了,但沒有看到使用 INDIRECT("M"&ROW())的目的,無從了解及說明,是否在再補充 ...
ML089 發表於 2014-10-1 09:05



INDIRECT("M"&ROW())或INDIRECT("b"&ROW())或INDIRECT("c"&ROW())...等 : 均是考量在N13儲存格垂直下拉時,列號會變,才用這樣的土方式啦~

TOP

回復 14# ML089


    14樓公式使用陣列方式比較慢一些,直接數學計算比較快

N13
=ROUND($H13/($C13-$B13)*(MAX(0,MIN($C13,DATE(YEAR($B13),N$12+1,1))-$B13)),) - SUM($M13:M13,-$M13)

公式 = 四捨伍入至整數( 總利息/總天數 * (起日期至各月底天數) ) - 前面的利息合計
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 12# u7490074


    AG13驗證合計這樣寫會有問題,因為EXCEL儲存格可以格式化為整數但其實是有含小數的數字,用SUM(....)的總數會對,但用眼睛看用計算機計算就是會不一樣。

將 =SUM(N13:AE13)
改為 =SUMPRODUCT(ROUND(N13:AE13,0))
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

本帖最後由 ML089 於 2014-10-1 10:37 編輯

回復 12# u7490074
N13
=IF(AND(N$12<=12,DATE(YEAR($B13),MONTH($B13)+1,)=DATE(YEAR($B13),N$12+1,)),ROUND($H13*($L13/$G13),0),IF(AND(N$12<=12,DATE(YEAR($C13),MONTH($C13)+1,)=DATE(YEAR($B13),N$12+1,)),ROUND($H13*($M13/$G13),0),IF(AND(N$12>12,DATE(YEAR($C13),MONTH($C13)+1,)=DATE(YEAR($B13)+1,(N$12-12)+1,)),ROUND($H13*($M13/$G13),0),0)))+IF(AND(N$12<=12,DATE(YEAR($B13),MONTH($B13)+1,)<DATE(YEAR($B13),N$12+1,),DATE(YEAR($B13),N$12+1,)<DATE(YEAR($C13),MONTH($C13)+1,)),ROUND($H13*(DAY(DATE(YEAR($C13),N$12+1,))/$G13),0),IF(AND(N$12>12,DATE(YEAR($B13),MONTH($B13)+1,)<DATE(YEAR($B13)+1,(N$12-12)+1,),DATE(YEAR($B13)+1,(N$12-12)+1,)<DATE(YEAR($C13),MONTH($C13)+1,)),ROUND($H13*(DAY(DATE(YEAR($B13)+1,(N$12-12)+1,))/$G13),0),0))


N13公式可以簡化,只需要 起日期/迄日期/利息總費用及月數等資料就可以計算

=ROUND($H13/($C13-$B13)*FREQUENCY(ROW(INDIRECT($B13&":"&$C13-1)),DATE(YEAR($B13),N$12+1,)),) - SUM($M13:M13,-$M13)

每月利息費用會四捨伍入,誤差累積超過1元時該月會增加1元
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 12# u7490074

檔案我看了,但沒有看到使用 INDIRECT("M"&ROW())的目的,無從了解及說明,是否在再補充一下
使用原公式中使用 INDIRECT("M"&ROW()) 這種方法太複雜

你可以將原先公式中需要的6個儲存格分別用引用
R1 = 13
R2 = INDIRECT("B"&R1)
R3 = INDIRECT("C"&R1)
R4 = INDIRECT("G"&R1)
R5 = INDIRECT("H"&R1)
R6 = INDIRECT("L"&R1)
R7 = INDIRECT("M"&R1)
再將R2~R7帶入公式中
你也可以先複製表格,用 剪下/貼上 的方式來移動 B13、C13...L13、M13,公式就能自動改變,再將公式內容複製你要的地方。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

檔案欄位N~AE:是算費用分攤的月份(算頭不算尾),超過12(即Y欄),就算是隔年(本商品最多發行6個月,所以才有 ...
u7490074 發表於 2014-9-30 15:30



對了,因為這樣長的公式←無果再加上INDIRECT("M"&ROW())則因為公式太長會被EXCEL拒絕再修改~~~困擾且不好編修~~


【R13儲存格】
=IF(AND(R12<=12,DATE(YEAR(INDIRECT("$b"&ROW())),MONTH(INDIRECT("$b"&ROW()))+1,)=DATE(YEAR(INDIRECT("$b"&ROW())),R12+1,)),ROUND($H13*($L13/$G13),0),IF(AND(R12<=12,DATE(YEAR(INDIRECT("$c"&ROW())),MONTH(INDIRECT("$c"&ROW()))+1,)=DATE(YEAR(INDIRECT("$b"&ROW())),R12+1,)),ROUND($H13*($M13/$G13),0),IF(AND(R12>12,DATE(YEAR(INDIRECT("$C"&ROW())),MONTH(INDIRECT("$C"&ROW()))+1,)=DATE(YEAR(INDIRECT("$b"&ROW()))+1,(R12-12)+1,)),ROUND($H13*($M13/$G13),0),0)))+IF(AND(R12<=12,DATE(YEAR(INDIRECT("$b"&ROW())),MONTH(INDIRECT("$b"&ROW()))+1,)<DATE(YEAR(INDIRECT("$b"&ROW())),R12+1,),DATE(YEAR(INDIRECT("$b"&ROW())),R12+1,)<DATE(YEAR(INDIRECT("$C"&ROW())),MONTH(INDIRECT("$C"&ROW()))+1,)),ROUND($H13*(DAY(DATE(YEAR(INDIRECT("$C"&ROW())),R12+1,))/$G13),0),)+IF(AND(R12>12,DATE(YEAR(INDIRECT("$b"&ROW())),MONTH(INDIRECT("$b"&ROW()))+1,)<DATE(YEAR(INDIRECT("$b"&ROW()))+1,(R12-12)+1,),DATE(YEAR(INDIRECT("$b"&ROW()))+1,(R12-12)+1,)<DATE(YEAR(INDIRECT("$C"&ROW())),MONTH($C13)+1,)),ROUND($H13*(DAY(DATE(YEAR($B13)+1,(R12-12)+1,))/$G13),0),0)

TOP

檔案欄位N~AE:是算費用分攤的月份(算頭不算尾),超過12(即Y欄),就算是隔年(本商品最多發行6個月,所以才有13月~18月)
==>單一儲存格公式太多,檢核很辛苦會漏,且每換一列,追綜列就要動態變動

檔案如下網址 : 要下載到個人電腦才能看~
https://docs.google.com/file/d/0BytNKnm2laTvQXFaQUE2bTNRRlNXMThwQjFFOVlNR0gzTFF3/edit?usp=sharing

TOP

回復 9# u7490074

是一定要用INDIRECT("F"&ROW())才能得到F18儲存格的值嗎?  與在A18儲存格輸入=F18寫法,要多不少語法對嗎.

A18 =F18 當然比 A18 =INDIRECT("F"&ROW()) 簡單多了
每個函數各有使用時機。目前是看不出來你要怎麼用,有檔案說明比較容易了解你要什麼?


你的T2、U2公式不變,其結果引用回來就可以
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復  u7490074

猜猜看,是不是這樣
=SUM(INDIRECT("Y"&ROW()&":Z"&ROW()))
ML089 發表於 2014-9-29 21:40


是可以用,但如果單一儲存格打入="F"&ROW()   .......假設在第18列   則得到是F18,
是一定要用INDIRECT("F"&ROW())才能得到F18儲存格的值嗎?  與在A18儲存格輸入=F18寫法,要多不少語法對嗎.......因為我有多判別式,所以一個儲存格內放好長的語法,如下,有方法能再精簡or更簡明的語法嗎?

【儲存格A~L內容】
起始年度                   終迄年度                                  單據編號               原本金             利率        總天數        總利息費用     總月數           起月      迄月        起月天數  迄月天數
2014年08月04日        2014年10月06日        40C000800        30,000,000         1.080%        63         55,920                 3               8         10         28         5

【儲存格M~AD內容】
1        2        3        4        5        6        7        8        9        10        11        12        13        14        15        16        17        18
0         0         0         0         0         0         0         24,853         26,629         4,438         0         0         0         0         0         0         0         0

【儲存格T2內容】
其中,8月份=24853元=IF(AND(U2<=12,DATE(YEAR($B3),MONTH($B3)+1,)=DATE(YEAR($B3),U2+1,)),ROUND($H3*($L3/$G3),0),IF(AND(U2>12,DATE(YEAR($B3),MONTH($B3)+1,)=DATE(YEAR($B3),(U2-12)+1,)),ROUND($H3*($L3/$G3),0),IF(AND(U2<=12,DATE(YEAR($C3),MONTH($C3)+1,)=DATE(YEAR($B3),U2+1,)),ROUND($H3*($M3/$G3),0),IF(AND(U2>12,DATE(YEAR($C3),MONTH($C3)+1,)=DATE(YEAR($B3)+1,(U2-12)+1,)),ROUND($H3*($M3/$G3),0),0))))+IF(AND(U2<=12,DATE(YEAR($B3),MONTH($B3)+1,)<DATE(YEAR($B3),U2+1,),DATE(YEAR($B3),U2+1,)<DATE(YEAR($C3),MONTH($C3)+1,)),ROUND($H3*(DAY(DATE(YEAR($B3)+1,(U2-12)+1,))/$G3),0),IF(AND(U2>12,DATE(YEAR($B3),MONTH($B3)+1,)<DATE(YEAR($B3)+1,(U2-12)+1,),DATE(YEAR($B3)+1,(U2-12)+1,)<DATE(YEAR($C3),MONTH($C3)+1,)),ROUND($H3*(DAY(DATE(YEAR($B3)+1,(U2-12)+1,))/$G3),0),0))

【儲存格U2內容】
其中,9月份=26629元=IF(AND(V2<=12,DATE(YEAR($B3),MONTH($B3)+1,)=DATE(YEAR($B3),V2+1,)),ROUND($H3*($L3/$G3),0),IF(AND(V2>12,DATE(YEAR($B3),MONTH($B3)+1,)=DATE(YEAR($B3),(V2-12)+1,)),ROUND($H3*($L3/$G3),0),IF(AND(V2<=12,DATE(YEAR($C3),MONTH($C3)+1,)=DATE(YEAR($B3),V2+1,)),ROUND($H3*($M3/$G3),0),IF(AND(V2>12,DATE(YEAR($C3),MONTH($C3)+1,)=DATE(YEAR($B3)+1,(V2-12)+1,)),ROUND($H3*($M3/$G3),0),0))))+IF(AND(V2<=12,DATE(YEAR($B3),MONTH($B3)+1,)<DATE(YEAR($B3),V2+1,),DATE(YEAR($B3),V2+1,)<DATE(YEAR($C3),MONTH($C3)+1,)),ROUND($H3*(DAY(DATE(YEAR($B3)+1,(V2-12)+1,))/$G3),0),IF(AND(V2>12,DATE(YEAR($B3),MONTH($B3)+1,)<DATE(YEAR($B3)+1,(V2-12)+1,),DATE(YEAR($B3)+1,(V2-12)+1,)<DATE(YEAR($C3),MONTH($C3)+1,)),ROUND($H3*(DAY(DATE(YEAR($B3)+1,(V2-12)+1,))/$G3),0),0))

TOP

回復 7# u7490074

猜猜看,是不是這樣
=SUM(INDIRECT("Y"&ROW()&":Z"&ROW()))
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 【為善競爭】人生要為善競爭,分秒必爭。
返回列表 上一主題