成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何處理報(bào)表中的舍位平衡-創(chuàng)新互聯(lián)

在報(bào)表的數(shù)據(jù)統(tǒng)計(jì)中,常常會(huì)根據(jù)精度呈現(xiàn)或者單位換算等要求,需要對(duì)數(shù)據(jù)執(zhí)行四舍五入的操作,這種操作稱為舍位處理。簡(jiǎn)單直接的舍位處理有可能會(huì)帶來(lái)隱患,原本平衡的數(shù)據(jù)關(guān)系可能會(huì)被打破。

成都網(wǎng)站建設(shè)、做網(wǎng)站的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒(méi)有做好網(wǎng)站,給創(chuàng)新互聯(lián)公司一個(gè)展示的機(jī)會(huì)來(lái)證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來(lái)新的靈感和驚喜。面向用戶友好,注重用戶體驗(yàn),一切以用戶為中心。

為了保證報(bào)表中數(shù)據(jù)關(guān)系的正確,就需要調(diào)整舍位之后的數(shù)據(jù),使得數(shù)據(jù)重新變得平衡,這樣的調(diào)整就叫做舍位平衡。在這里我們就討論一下如何利用集算器來(lái)處理舍位平衡問(wèn)題。

舍位處理往往會(huì)采取四舍五入計(jì)算,這時(shí)就會(huì)產(chǎn)生誤差,而如果報(bào)表中有這些數(shù)據(jù)的合計(jì)數(shù)值,那么舍位時(shí)產(chǎn)生的誤差就會(huì)積累,有可能導(dǎo)致舍位過(guò)的數(shù)據(jù)與其合計(jì)值無(wú)法匹配。例如,保留一位小數(shù)的原始的數(shù)據(jù)是4.5+4.5=9.0,而四舍五入只保留整數(shù)部分后,平衡關(guān)系就變?yōu)?+5=9了,看上去明顯是荒謬的。在這樣的情況下,需要在保持合計(jì)值正確的條件下,調(diào)整非合計(jì)數(shù)據(jù)舍位后的結(jié)果,使得數(shù)據(jù)關(guān)系重新平衡,例如調(diào)整為4+5=9。這個(gè)簡(jiǎn)單的例子就是典型舍位平衡。

1. 單向舍位平衡

如果在數(shù)據(jù)統(tǒng)計(jì)時(shí),每個(gè)數(shù)據(jù)只用于一次合計(jì),那么在處理舍位平衡時(shí),只需要根據(jù)合計(jì)值的誤差,調(diào)整使用的各項(xiàng)數(shù)據(jù)就可以了,這屬于比較簡(jiǎn)單的情況。例如:


A

B

C

1

[1.48,0,1.42,0.32,6.48,0.98,1.39]

=A1.sum()


2

=A1.(round(~))

=round(B1)

=A2.sum()

A1的序列中存儲(chǔ)了一些數(shù)據(jù),在B1中計(jì)算了它們的合計(jì)值,結(jié)果如下:

如何處理報(bào)表中的舍位平衡 如何處理報(bào)表中的舍位平衡

現(xiàn)在,將數(shù)據(jù)取整,重新統(tǒng)計(jì)。A2中將序列中每個(gè)數(shù)據(jù)用round函數(shù)四舍五入取整,得到新的序列。在B2中則將B1中的結(jié)果取整,這是數(shù)據(jù)取整后應(yīng)該獲得的結(jié)果。在C2中則只是簡(jiǎn)單地用取整后的數(shù)據(jù)來(lái)求和。A2,B2和C2中結(jié)果分別如下:

如何處理報(bào)表中的舍位平衡 如何處理報(bào)表中的舍位平衡 如何處理報(bào)表中的舍位平衡

顯然,舍位后誤差的累積導(dǎo)致數(shù)據(jù)不再平衡,將原始數(shù)據(jù)分別四舍五入后,總和由12變成了10。那么,能不能把合計(jì)數(shù)直接改為10呢?這是不行的,因?yàn)檫@樣會(huì)使得最終結(jié)果與真實(shí)值完全不符。因此,為了保證舍位后仍然能夠保持平衡關(guān)系,應(yīng)該分別改變各個(gè)原始數(shù)據(jù)舍位后的結(jié)果。

舍位后總計(jì)產(chǎn)生的誤差,稱為“平衡差”,舍位平衡其實(shí)就是消除平衡差的過(guò)程。處理舍位平衡的規(guī)則有很多,下面我們分別進(jìn)行研究:

(1) 將平衡差整理到第一個(gè)數(shù)據(jù)中。即:


A

B

C

1

[1.48,0,1.42,0.32,6.48,0.98,1.39]

=A1.sum()


2

=A1.(round(~))

>A2(1)+=round(B1)-A2.sum()

=A2.sum()

B2中,把平衡差折算到舍位后的第一個(gè)數(shù)據(jù)中。整理后,在C2中重新計(jì)算了舍位平衡處理后的合計(jì)值。A2和C2中的結(jié)果如下:

如何處理報(bào)表中的舍位平衡 如何處理報(bào)表中的舍位平衡

這種舍位平衡的處理規(guī)則最為簡(jiǎn)單。但是,舍位后第1個(gè)數(shù)據(jù)由1.48變?yōu)榱?,明顯偏移了很多,因此這樣的處理不夠合理,特別是在數(shù)據(jù)很多的情況下,平衡差也有可能會(huì)累積的很大,進(jìn)而致使第1個(gè)數(shù)據(jù)產(chǎn)生非?;闹嚨钠平Y(jié)果。

(2) 將平衡差按照“最小調(diào)整值”,對(duì)絕對(duì)值比較大的數(shù)據(jù)進(jìn)行分擔(dān)調(diào)整。

所謂最小調(diào)整值,就是舍位后最小精度的單位值,例如在取整時(shí),最小精度就是個(gè)位,最小調(diào)整值就是1或者-1。如果舍位后合計(jì)值變小,則需要將數(shù)據(jù)調(diào)大,那么最小調(diào)整值就是1;如果舍位后合計(jì)值變大,則需要將數(shù)據(jù)調(diào)小,最小調(diào)整值就是-1。而調(diào)整只針對(duì)絕對(duì)值比較大的數(shù)據(jù),這樣它們的相對(duì)偏差就會(huì)比較小。具體調(diào)整幾個(gè)數(shù),那就是合計(jì)值偏差除以最小調(diào)整值。

在這種規(guī)則下,前面問(wèn)題的舍位平衡處理如下:


A

B

C

1

[1.48,0,1.42,0.32,6.48,0.98,1.39]

=A1.sum()


2

=A1.(round(~))

=round(B1)-A2.sum()

=sign(B2)

3

=A1.psort@z(abs(~))

>abs(B2).run(A2(A3(#))+=C2)

=A2.sum()

因?yàn)橹皇侨≌僮?,因此C2中計(jì)算的最小調(diào)整值就是合計(jì)值偏差的正負(fù);

A3中,根據(jù)原始數(shù)據(jù)的絕對(duì)值從大到小做了一個(gè)排序,結(jié)果就是排序后的序號(hào)。

B3是最主要的,因?yàn)橹皇侨≌僮?,所以B2中的偏差絕對(duì)值是多少,就調(diào)整幾個(gè)數(shù)。以此循環(huán),依照原始值的絕對(duì)值大小,依次分配最小調(diào)整值。

C3是對(duì)調(diào)整后的A2重新驗(yàn)證了合計(jì)值。

調(diào)整后,A2和C3中的結(jié)果如下:

如何處理報(bào)表中的舍位平衡 如何處理報(bào)表中的舍位平衡

在這種方案中,平衡差由多個(gè)數(shù)據(jù)分擔(dān),而選擇絕對(duì)值大的數(shù)據(jù)會(huì)使得數(shù)據(jù)的相對(duì)變動(dòng)最小。在結(jié)果中,1.48舍位后變?yōu)榱?,6.48舍位后變?yōu)榱?,調(diào)整平衡的結(jié)果還是比較理想的。

這種方案需要將數(shù)據(jù)按絕對(duì)值排序,執(zhí)行效率不是很好,特別是在數(shù)據(jù)量比較大的情況下,排序會(huì)耗費(fèi)較多時(shí)間。

(3) 將平衡差按照最小調(diào)整值,由不為0的數(shù)據(jù)依次分擔(dān)。

在上一種調(diào)整舍位平衡的方案中,將誤差由絕對(duì)值大的一些數(shù)據(jù)來(lái)分擔(dān)。在實(shí)際操作中,為了提高效率,減少排序操作,就可以適當(dāng)簡(jiǎn)化,改為由順序排在前幾位的數(shù)據(jù)來(lái)分擔(dān)??紤]到在四舍五入時(shí),0并不會(huì)產(chǎn)生誤差,而且如果修改數(shù)據(jù)中的0,這樣的變動(dòng)會(huì)比較明顯,因此在調(diào)整時(shí)將保留原始數(shù)據(jù)中的0不變。

在這種規(guī)則下,前面問(wèn)題的舍位平衡處理如下:


A

B

C

1

[1.48,0,1.42,0.32,6.48,0.98,1.39]

=A1.sum()


2

=A1.(round(~))

=round(B1)-A2.sum()

=sign(B2)

3

=A2.pselect@a(~!=0)

>abs(B2).run(A2(A3(#))+=C2)

=A2.sum()

A3中選擇出原始數(shù)據(jù)中非0成員的序號(hào),在B3中調(diào)整舍位后數(shù)據(jù)時(shí),按順序分擔(dān)。調(diào)整后,A2和C3中的結(jié)果如下:

如何處理報(bào)表中的舍位平衡 如何處理報(bào)表中的舍位平衡

在結(jié)果中,1.48舍位后變?yōu)榱?,1.42舍位后變?yōu)榱?,調(diào)整平衡的結(jié)果比較合理。同時(shí)這種方案避免了排序操作,效率較高,因此這種舍位平衡的規(guī)則最為常用。

在處理單向舍位平衡時(shí),并非只有對(duì)一組序列求和的情況。更多的情況下,是對(duì)一批數(shù)據(jù)來(lái)求和,如下面的SalesRecord.txt中存儲(chǔ)的序表:

Name     Jan Feb Mar Apr

Allen     26106    49637    27760    33829

Billy      56611     50588    54765    76072

Charlie   21249    96825    28645    55958

Daisy     3413      49069    6279      98247

Flora      7590      12072    90034    64252


現(xiàn)在,需要統(tǒng)計(jì)每位員工4個(gè)月的總銷售額,統(tǒng)計(jì)時(shí)以千元為單位,并處理舍位平衡。代碼如下:


A

B

C

D

1

=file("SalesRecord.txt").import@t()

=A1.derive(Jan+Feb+Mar+Apr:Sum)

=B1.derive()


2

>5.(C1.field(#+1,C1.field(#+1).(round(~/1000))))

=C1.derive(Jan+Feb+Mar+Apr:Sum2)



3

for B2

>func(A5,A3)



4

=B2.derive(Jan+Feb+Mar+Apr:Sum3)




5

func

=A5.Sum-A5.Sum2

=abs(B5)

=sign(B5)*1

6


for C5

=A5.field(1+B6)

>A5.field(1+B6,C6+D5)

分步執(zhí)行代碼,A1中讀入序表后,在B1中添加合計(jì)字段Sum,結(jié)果如下:

如何處理報(bào)表中的舍位平衡

在C1中將上面的序表復(fù)制,并在B1中將序表中的第2至第6個(gè)字段執(zhí)行舍位計(jì)算到以千為單位。此時(shí),有可能由于四舍五入計(jì)算破壞平衡,在B2中再添加一個(gè)字段Sum2,計(jì)算舍位后4個(gè)月的合計(jì)值。B2中的序表如下:

如何處理報(bào)表中的舍位平衡

可以看到,在此時(shí),Sum與Sum2字段是有區(qū)別的,說(shuō)明需要調(diào)整舍位平衡。在這里雖然需要調(diào)整計(jì)算后序表中的數(shù)據(jù),但是每個(gè)數(shù)據(jù)只用于計(jì)算員工合計(jì),因此仍然屬于單向舍位平衡。

A5中的子程序用來(lái)處理一條記錄的舍位平衡,B5中計(jì)算平衡差,C5中計(jì)算出最小調(diào)整值。在B6中循環(huán),將平衡差拆分到記錄中前幾個(gè)數(shù)據(jù)中,這里簡(jiǎn)單處理,并未判斷數(shù)據(jù)是否非零。

在A3中,循環(huán)序表B2中的記錄,分別調(diào)整舍位平衡。調(diào)整完畢后,在A4中再添加Sum3字段來(lái)驗(yàn)證舍位平衡結(jié)果,A4中結(jié)果如下:

如何處理報(bào)表中的舍位平衡

對(duì)比Sum與Sum3可以確認(rèn),結(jié)果調(diào)整,數(shù)據(jù)舍位后重新達(dá)成了平衡。

2. 雙向舍位平衡

如果數(shù)據(jù)在行向和列向兩個(gè)方向同時(shí)需要計(jì)算合計(jì)值,同時(shí)還需要計(jì)算所有數(shù)據(jù)的總計(jì)值,這種情況下處理舍位平衡時(shí)就復(fù)雜得多了。此時(shí)處理舍位平衡時(shí),不僅要求最終的總計(jì)值準(zhǔn)確,同時(shí)行向和列向計(jì)算的合計(jì)值也要與對(duì)應(yīng)行、列的數(shù)據(jù)平衡,這種情況下的舍位平衡稱為雙向舍位平衡。如在SalesRecord.txt的數(shù)據(jù)中,需要再統(tǒng)計(jì)每個(gè)月的總銷售額,代碼如下:


A

B

C

1

=file("SalesRecord.txt").import@t()

>A1.insert(0,"Total")

>4.(A1.m(-1).field(#+1,A1.field(#+1).to(,  5).sum()))

2

=A1.derive(Jan+Feb+Mar+Apr:Sum)

=A2.derive()

>5.(B2.field(#+1,B2.field(#+1).(round(~/1000))))

3

=B2.derive(Jan+Feb+Mar+Apr:Sum2)

=A3.derive(Sum2-Sum:Diff)

>B3.insert(0,"Total2")

4

>5.(B3.m(-1).field(#+1, A3.field(#+1).to(,5).sum()))

>B3.insert(0,"Diff")

>5.(B3.m(-1).field(#+1,B3(6).field(#+1)-  B3(7).field(#+1)))

A1中讀入序表,并在B1中添加一條記錄,用來(lái)在D1中計(jì)算各月總銷售額。再在A2中添加字段計(jì)算每位員工的銷售總額,以及總合計(jì)值后,結(jié)果如下:

如何處理報(bào)表中的舍位平衡

在C2中根據(jù)上面的匯總數(shù)據(jù),將結(jié)果舍位到以千元為單位。再根據(jù)舍位后的數(shù)據(jù),在A3中添加字段Sum2計(jì)算舍位后的員工合計(jì)值,在B3中添加字段Diff員工合計(jì)的平衡差。最后,再添加2條記錄,分別用來(lái)計(jì)算每個(gè)月的舍位合計(jì)值,以及平衡差。計(jì)算完成后,B3中結(jié)果如下:

如何處理報(bào)表中的舍位平衡

可以看到,當(dāng)橫向和縱向分別做匯總時(shí),舍位后需要解決的平衡問(wèn)題就復(fù)雜得多了。此時(shí)修改任何一個(gè)舍位數(shù)據(jù),都會(huì)同時(shí)影響橫向和縱向兩個(gè)方向的合計(jì)計(jì)算,這樣的問(wèn)題稱為雙向舍位平衡。在上面的計(jì)算中,有一些平衡差只與合計(jì)值相關(guān),如Total這一行中最右側(cè)的平衡差,只與各月的合計(jì)有關(guān),這樣的平衡差稱為合計(jì)平衡差。在雙向舍位平衡表中,只存在一橫一縱兩個(gè)合計(jì)平衡差。其它的平衡差都會(huì)和具體數(shù)據(jù)相關(guān),如Feb這個(gè)月最下方的平衡差,這種平衡差稱為非合計(jì)平衡差。

我們先從一些比較簡(jiǎn)單的情況開始研究雙向舍位平衡:

(1)橫向與縱向的非合計(jì)平衡差符號(hào)相同。如下面的情況:

1.44

1.35

2.79

1.2

0

1.2

2.64

1.35

3.99

上面的表格中,存儲(chǔ)著2行2列的初始數(shù)據(jù),同時(shí)計(jì)算出了各行各列的合計(jì)值,以及所有數(shù)據(jù)的總計(jì)值。下面將這些數(shù)據(jù)四舍五入取整,并計(jì)算每一行/列的平衡差,結(jié)果如下:

1

1

3

+1

1

0

1


3

1

4


+1




這里的“非合計(jì)平衡差”是指涉及原始數(shù)據(jù)的平衡差,此時(shí)合計(jì)數(shù)據(jù)及總計(jì)值都不需要調(diào)整??梢钥吹?,此時(shí)只是第1行和第1列的合計(jì)值不平衡,而且都是合計(jì)值比舍位數(shù)據(jù)的和大1,這種情況下,只需要調(diào)整交叉點(diǎn)處的數(shù)據(jù),根據(jù)平衡差符號(hào)加減最小調(diào)整值即可。具體操作是把交叉點(diǎn)處,即第1行第1列的數(shù)據(jù)舍位結(jié)果+1,就可獲得平衡,結(jié)果如下:

2

1

3

1

0

1

3

1

4

(2)同向的2個(gè)非合計(jì)平衡差符號(hào)相反。如下面的情況:

1.44

1.55

2.99

1.2

0.85

2.05

2.64

2.4

5.04

將這些數(shù)據(jù)四舍五入取整,并計(jì)算每一行/列的平衡差,結(jié)果如下:

1

2

3


1

1

2


3

2

5


+1

-1



這種情況下,仍然不需要調(diào)整總計(jì)值。由于第1列和第2列中的平衡差一正一負(fù),只需要任選一行平衡差為0的數(shù)據(jù),將這兩列的數(shù)分別根據(jù)按平衡差的符號(hào)加減最小調(diào)整值。如選擇第1行,將第1列的舍位結(jié)果+1,將第2列的舍位結(jié)果-1,就可獲得平衡,結(jié)果如下:

2

1

3

1

1

2

3

2

5

(3)某個(gè)合計(jì)平衡差與另一方向的非合計(jì)平衡差符號(hào)相反。如下面的情況:

1.44

1.55

2.99

1.2

0.97

2.17

2.64

2.52

5.16

將這些數(shù)據(jù)四舍五入取整,并計(jì)算每一行/列的平衡差,結(jié)果如下:

1

2

3


1

1

2


3

3

5

-1

+1




這種情況下,說(shuō)明交叉點(diǎn)處的合計(jì)數(shù)據(jù)需要調(diào)整,只需要調(diào)整交叉點(diǎn)處的合計(jì)數(shù)據(jù),根據(jù)合計(jì)平衡差的符號(hào)加減最小調(diào)整值。在這里,即修改第1列的合計(jì)結(jié)果,根據(jù)橫向的合計(jì)平衡差,將其-1,即可獲得平衡,結(jié)果如下:

1

2

3

1

1

2

2

3

5

(4)某個(gè)合計(jì)平衡差與同方向的非合計(jì)平衡差符號(hào)相同。如下面的情況:

1.48

1

2.48

2.11

1.01

3.12

3.59

2.01

5.6

將這些數(shù)據(jù)四舍五入取整,并計(jì)算每一行/列的平衡差,結(jié)果如下:

1

1

2


2

1

3


4

2

6


+1


+1


在這里是列向的合計(jì)平衡差與另一列的平衡差符號(hào)相同,在這種情況下,可以任選1行平衡差為0的數(shù)據(jù),同時(shí)調(diào)整這2列的數(shù)據(jù)。如果選擇第1行,即同時(shí)調(diào)整第1行第1列,以及第1行的合計(jì)值,將它們分別+1即可獲得平衡,結(jié)果如下:

2

1

3

2

1

3

4

2

6

(5)兩個(gè)方向合計(jì)平衡差的符號(hào)相同。如下面的情況:

1.44

1.99

3.43

1.6

0.48

2.08

3.04

2.47

5.51

將這些數(shù)據(jù)四舍五入取整,并計(jì)算每一行/列的平衡差,結(jié)果如下:

1

2

3


2

0

2


3

2

6

+1



+1


此時(shí),只有合計(jì)數(shù)據(jù)影響了結(jié)果的平衡。在這種情況下,可以任選一個(gè)非合計(jì)值,根據(jù)合計(jì)平衡差的符號(hào)加減最小調(diào)整值,同樣調(diào)整這個(gè)數(shù)據(jù)的橫向和縱向合計(jì)值。在上面例子中,可以任意選擇1個(gè)數(shù)據(jù),如第2行第2列的值,根據(jù)平衡差將它+1,同時(shí)將第2行以及第2列的合計(jì)值同時(shí)都+1,這樣就可以獲得平衡,如下:

1

2

3

2

1

3

3

3

6

由于是任選數(shù)據(jù),也有其它的處理方式,如選擇第1行第2列的數(shù)據(jù)修改,同樣可以獲得平衡,結(jié)果如下:

1

3

4

2

0

2

3

3

6

在處理雙向舍位平衡時(shí),只有上面的5種情況可以調(diào)整平衡。對(duì)于其它的情況,說(shuō)明計(jì)算有誤,是無(wú)法通過(guò)1次調(diào)整達(dá)成舍位平衡的。但是在實(shí)際處理中,上面的情況往往是混合出現(xiàn)的。因此,可以先處理第(1)種情況,即所有非合計(jì)行列平衡差符號(hào)相同的情況,再處理第(2)種情況,將非合計(jì)行/列中不同符號(hào)的平衡差消除。全部調(diào)整理完畢后,非合計(jì)行與非合計(jì)列的平衡差只能各為一種符號(hào)。此時(shí)再處理第(3)種和第(4)種情況,將非合計(jì)行/列的平衡差與合計(jì)行/列的平衡差配合消除。最后,如果兩個(gè)方向行/列的平衡差仍未消除,再按照第(5)中情況處理。這樣,就可以對(duì)一般性的表格完成雙向舍位平衡處理了。

再回到這一節(jié)開始時(shí)的銷售數(shù)據(jù)表,下面的代碼將處理其中的舍位平衡:


A

B

C

D

E

1

=file("SalesRecord.txt").import@t()

>A1.insert(0,"Total")

>4.(A1.m(-1).field(#+1,A1.field(#+1).to(,  5).sum()))



2

=A1.derive(Jan+Feb+Mar+Apr:Sum)

=A2.derive()

>5.(B2.field(#+1,B2.field(#+1).(round(~/1000))))



3

=B2.derive(Jan+Feb+Mar+Apr:Sum2)

=A3.derive(Sum-Sum2:Diff)

>B3.insert(0,"Total2")



4

>5.(B3.m(-1).field(#+1,A3.field(#+1).to(,5).sum()))

>B3.insert(0,"Diff")

>5.(B3.m(-1).field(#+1,B3(6).field(#+1)-  B3(7).field(#+1)))



5

=B2.len()

=B2.fno()

=B3.(Diff).to(,A5)

=B3.m(-1).array().to(2,B5)


6

for A5-1

for B5-2

for C5(A6)*D5(B6)>0

=sign(C5(A6))

>func(A26,B2(A6),B6+1,D6)

7




>C5(A6)-=D6

>D5(B6)-=D6

8

for A5-2

for A5-1-A8

for C5(A8)*C5(A8+B8)<0

=sign(C5(A8))

=D5.pselect(~==0)

9




>func(A26,B2(A8),E8+1,D8)

>func(A26,B2(A8+B8),E8+1,-D8)

10




>C5(A8)-=D8

>C5(A8+B8)+=D8

11

for B5-3

for B5-2-A11

for D5(A11) * D5(A11+B11) < 0

=sign(D5(A11))

=C5.pselect(~==0)

12




>func(A26,B2(E11),A11+1,D11)

>func(A26,B2(E11),A11+B11+1,-D11)

13




>D5(A11)-=D11

>D5(A11+B11)+=D11

14

if C5(A5)!=0

for B5-2

for C5(A5)*D5(B14)<0

=sign(C5(A5))

>func(A26,B2(A5),B14+1,D14)

15




>C5(A5)-=D14

>D5(B14)+=D14

16

if D5(B5-1)!=0

for A5-1

for C5(B16)*D5(B5-1)<0

=sign(D5(B5-1))

>func(A26,B2(B16),B5,D16)

17




>D5(B5-1)-=D16

>C5(B16)+=D16

18

if C5(A5)!=0

for A5-1

for C5(A5)*C5(B18)>0

=sign(C5(A5))

=D5.pselect(~==0)

19




>func(A26,B2(B18),E18+1,D18)

>func(A26,B2(A5),E18+1,D18)

20




>C5(A5)-=D18

>C5(B18)-=D18

21

if D5(B5-1)!=0

for B5-2

for D5(B21)*D5(B5-1)>0

=sign(D5(B5-1))

=C5.pselect(~==0)

22




>func(A26,B2(E21),B5,D21)

>func(A26,B2(E21),B21+1,D21)

23




>D5(B5-1)-=D21

>D5(B21)-=D21

24

if C5(A5)*D5(B5 -1)>0

>func(A26,B2(1),2,C5(A5))

>func(A26,B2(1),B5,C5(A5))

>func(A26,B2(A5),2,C5(A5))


25


>C5(A5)=0

>D5(B5-1)=0



26

func





27


=A26.field(B26)

>A26.field(B26,B27+C26)



程序比較復(fù)雜,下面簡(jiǎn)要說(shuō)明一下功能。A26處的子程序用來(lái)修改序表中的1條記錄,將其指定位置的數(shù)據(jù)加上所需的調(diào)整值。由于用于計(jì)算的序表中,第一列為Name,實(shí)際并不參與計(jì)算,因此整理數(shù)據(jù)時(shí)將其跳過(guò)。C5和D5中分別獲得橫向和縱向的平衡差序列。在第6、7行,循環(huán)處理第(1)種情況,如果兩個(gè)方向的平衡差符號(hào)相同,改變交叉點(diǎn)處的舍位結(jié)果。在第8~13行,分橫縱兩種情況,處理第(2)種情況,如果同向的兩個(gè)平衡差符號(hào)相反時(shí),修改這兩行/列中的舍位結(jié)果。第14~17行,處理第(3)種情況,當(dāng)合計(jì)平衡差與另一方向的非合計(jì)平衡差符號(hào)相反時(shí),調(diào)整交叉點(diǎn)處的合計(jì)結(jié)果。在第18~23行,處理第(4)種情況,當(dāng)合計(jì)平衡差與同方向的非合計(jì)平衡差符號(hào)相同時(shí),修改這兩行/列中的數(shù)據(jù)。最后,在第24和25行,判斷前面的修改完成后,是否仍然存在兩個(gè)合計(jì)平衡差,此時(shí)相應(yīng)調(diào)整第1個(gè)數(shù)據(jù)的舍位結(jié)果,同時(shí)調(diào)整第1行和第1列的合計(jì)值。

雙向舍位平衡處理完成后,在B2中可以查看最終結(jié)果:

如何處理報(bào)表中的舍位平衡

運(yùn)算時(shí),處理過(guò)程如下:

Name

Jan

Feb

Mar

Apr

Sum

Diff

Allen

26.0

50.0

28.0

34.0

137.0

-1

Billy

57.0

51.0

55.0

76.0

238.0

-1

Charlie

21.0

97.0

29.0

56.0

203.0

0

Daisy

3.0

49.0

6.0

98.0

157.0

1

Flora

8.0

12.0

90.0

64.0

174.0

0

Total

115.0

258.0

207.0

328.0

909.0

1

Diff

0

-1

-1

0

0


執(zhí)行第(1)步處理,將不同方向上符號(hào)相同的非合計(jì)平衡差消除后,結(jié)果如下:

Name

Jan

Feb

Mar

Apr

Sum

Diff

Allen

26.0

49.0

28.0

34.0

137.0

0

Billy

57.0

51.0

54.0

76.0

238.0

0

Charlie

21.0

97.0

29.0

56.0

203.0

0

Daisy

3.0

49.0

6.0

98.0

157.0

1

Flora

8.0

12.0

90.0

64.0

174.0

0

Total

115.0

258.0

207.0

328.0

909.0

1

Diff

0

0

0

0

0


這個(gè)例子中,執(zhí)行第(1)步處理后,并沒(méi)有符號(hào)相反的非合計(jì)平衡差,不需執(zhí)行第(2)步處理。在第(3)步處理中,查找合計(jì)平衡差是否與另一方向上的非合計(jì)平衡差符號(hào)相反的情況,同樣不存在。

在第(4)步處理中,查找合計(jì)平衡差與同向的非合計(jì)平衡差符號(hào)相同的情況,處理結(jié)果如下:

Name

Jan

Feb

Mar

Apr

Sum

Diff

Allen

26.0

49.0

28.0

34.0

137.0

0

Billy

57.0

51.0

54.0

76.0

238.0

0

Charlie

21.0

97.0

29.0

56.0

203.0

0

Daisy

4.0

49.0

6.0

98.0

157.0

0

Flora

8.0

12.0

90.0

64.0

174.0

0

Total

116.0

258.0

207.0

328.0

909.0

0

Diff

0

0

0

0

0


此時(shí),所有的平衡差已經(jīng)都變?yōu)榱?,說(shuō)明各個(gè)方向上的計(jì)算已經(jīng)恢復(fù)平衡,舍位平衡處理完成。如果仍未平衡,則需要進(jìn)一步執(zhí)行第(5)步處理。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:如何處理報(bào)表中的舍位平衡-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://jinyejixie.com/article24/isoje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、定制網(wǎng)站、面包屑導(dǎo)航、用戶體驗(yàn)小程序開發(fā)、網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
酒泉市| 大同市| 株洲县| 正镶白旗| 广南县| 包头市| 海伦市| 如皋市| 如皋市| 安国市| 卓尼县| 田阳县| 化州市| 灌南县| 自贡市| 永新县| 侯马市| 册亨县| 京山县| 乡宁县| 昭平县| 新巴尔虎左旗| 怀宁县| 太保市| 莱阳市| 屏东市| 南昌县| 岳阳市| 锦州市| 长岛县| 洛宁县| 汶上县| 高密市| 万安县| 寿光市| 兰溪市| 扬中市| 定州市| 威信县| 庆安县| 馆陶县|