2008年4月26日 星期六

國民所得

國民所得,可有三種計算方式:GDP、GNP、GNI(Gross National Income,少用)。

  • 國內生產毛額(Gross Domestic Product,GDP),指一國之內所有的生產毛額,包括非本國人在內。即是以『國境』為主。
  • 國民生產毛額(Gross National Product,GNP),則是指一國國民在國內外的所有所得。即是以『國民』為主。
通常,當國民所得中的各要素在國際間流動的程度越高時,會採用GDP。台灣和美國都是採用GDP

其內容包括:民間消費(台灣約佔六成GDP比重)、政府消費、固定投資(政府、公營事業、民間)、存貨變動、商品及勞務輸出入。

GDP升高,代表該國或該地區的經濟在成長中,整體人民的購買能力提高,景氣活絡,值得投資。
GDP降低,代表該國或該地區的經濟停滯不前,整體人民的購買能力降低,景氣不佳,資金可能外移。

每人國民所得(Income Per Capita),即某一期間按市價計算之國民所得,除以該段期間人口總數而得出的數值,又稱為『平均每人國民所得』。

資料來源:行政院主計處,每2、5、8、11月中旬發佈,觀察上一季
主要資料細網址:http://www.dgbas.gov.tw/ct.asp?xItem=14616&CtNode=3566中的第一項: 國民所得統計常用資料,其內容為Excel檔,而其檔名沒有規律可尋,不知是否為固定檔名,得觀察數季才行。故,目前只得自行下載回來看或另行處理。

[+/-] 繼續閱讀...

經濟指標-查閱處

以下整理各種經濟指標之查閱來源處。

[+/-] 繼續閱讀...

2008年4月24日 星期四

LINQ運算式基本構成子句

一、指定資料來源(From):這是LINQ查詢的第一步,From子句一定排在最前面。它可指定一個或多個範圍變數以及要查詢的集合。

From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]

其中,element及collection為必要項,type則為選擇項。

  • element:用於逐一查看集合中項目的「範圍變數」(Range Variable)。在查詢逐一查看 collection 時,範圍變數可用以參考 collection 的每個成員。必須是可列舉的型別。
  • type:element 的型別。如果沒有指定 type,則會從 collection 推斷 element 的型別。
  • collection:參考要查詢的集合。必須是可列舉的型別。
可以在查詢中指定多個From子句,也可以在單一From子句中將每個相關的範圍變數和集合以逗號隔開,藉以指定多個範圍變數和集合。這兩種寫法如下:
' Multiple From clauses in a query.
Dim result = From var1 In collection1, var2 In collection2

' Equivalent syntax with a single From clause.
Dim result2 = From var1 In collection1 _
From var2 In collection2
也可以組成一個巢狀From子句,其中第二個子句中的集合是根據第一個子句中的範圍變數屬性:
Dim allOrders = From cust In GetCustomerList() _
From ord In cust.Orders _
Select ord

二、篩選資料(Where):Where子句會用來執行篩選,而查詢接著只會傳回運算式為true的項目。可以使用邏輯運算子(如And、Or、AndAlso、OrElse、Is 和 IsNot)來合併Where子句中的篩選條件運算式。

From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Where condition
  • condition:為必要項。是個運算式,用於判斷集合中目前項目的值是否要納入輸出集合。此運算式必須評估為Boolean值或Boolean值的對等用法。如果條件評估為True,則會將項目納入查詢結果中,否則會將項目排除在查詢結果之外。
可以在 Where 子句中呼叫函式,以對集合中目前項目的值執行計算或作業。在 Where 子句中呼叫函式會使查詢在進行定義時就立即執行,而不是等到進行存取時才執行。

三、排序資料(Order By): Order By子句會根據指定的一個或多個欄位來排序所傳回序列中的項目。

From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Where condition
Order By orderExp1 [ Ascending Descending ] [, orderExp2 [...] ]
  • orderExp1
    為必要項。目前查詢結果的一個或多個欄位,用以識別如何排序傳回的值。欄位名稱必須以逗號(,)分隔。可以使用Ascending或Descending關鍵字,將每個欄位識別為以遞增或遞減順序排序。如果未指定Ascending或Descending關鍵字,預設排序次序是遞增排序。排序次序欄位優先順序是由左至右。
Order By 子句只能根據目前範圍 (Scope) 的範圍 (Range) 變數排序結果。例如,Select 子句在查詢運算式中引入新的範圍 (Scope),並用新的反覆運算變數代表該範圍 (Scope)。在查詢中 Select 子句之前定義的範圍 (Range) 變數在 Select 子句之後就無法使用。因此,如果您要依 Select 子句中無法使用的欄位排序結果,就必須將 Order By 子句放在 Select 子句前面。您必須這麼做的其中一個範例就是依不在傳回結果中的欄位來排序查詢時。

四、選取資料(Select):Select子句會指定所傳回項目的格式和內容。

From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Where condition
Order By orderExp1 [ Ascending Descending ] [, orderExp2 [...] ]
Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]
  • var1:選擇項,可用於參考資料行運算式之結果的別名 (Alias)
  • fieldName1:必要項。在查詢結果中傳回的欄位名稱
查詢不一定需要Select子句。如果未指定Select子句,查詢會依據目前範圍所識別之範圍變數的所有成員傳回型別。
Select子句可以參考目前範圍中的任何變數。這包含From子句中識別的範圍變數,也包含由Aggregate、Let、Group By或Group Join子句之別名所建立的新變數,或由查詢運算式中先前Select子句所決定的變數。

若要擷取包含完整 Customer 物件的集合,請選取範圍變數本身:
Dim londonCusts2 = From cust In customers _
Where cust.City = "London" _
Order By cust.Name Ascending _
Select cust

如果 Customer 執行個體 (Instance) 是擁有多個欄位的大型物件,而您只要擷取名稱,則可以選取 cust.Name (如下列範例所示)。區域型別推斷會知道要將結果的型別從 Customer 物件的集合變更為字串的集合。
Dim londonCusts3 = From cust In customers _
Where cust.City = "London" _
Order By cust.Name Ascending _
Select cust.Name

若要選取資料來源中的多個欄位,您有兩個選擇:

  • 在 Select 子句中,指定想要併入結果中的欄位。編譯器會在定義匿名型別時,將那些欄位當成該型別的屬性。
    因為在下列範例中傳回的項目是匿名型別執行個體,所以無法在程式碼的別處依名稱來參考該型別。編譯器指定的型別名稱會包含一般 Visual Basic 程式碼中無效的字元。在下列範例中,由 londonCusts4 內的查詢所傳回之集合中的項目會是匿名型別執行個體。
    Dim londonCusts4 = From cust In customers _
    Where cust.City = "London" _
    Order By cust.Name Ascending _
    Select Name = cust.Name, Phone = cust.Phone

    For Each londonCust In londonCusts4
    Console.WriteLine(londonCust.Name & " " & londonCust.Phone)
    Next
  • 定義具名型別並使其內含想要併入結果中的特定欄位,然後在 Select 子句中建立和初始化該型別的執行個體。只有當必須在包含所傳回結果的集合外部使用個別結果,或者必須在方法呼叫中將個別結果當成參數傳遞時,才使用這個選項。下列範例中 londonCusts5 的型別是 IEnumerable(Of NamePhone)。
    Public Class NamePhone
    Public Name As String
    Public Phone As String
    ' Additional class elements
    End Class

    Dim londonCusts5 = From cust In customers _
    Where cust.City = "London" _
    Order By cust.Name Ascending _
    Select New NamePhone With {.Name = cust.Name, _
    .Phone = cust.Phone}

Select子句也可以包含靜態值。例如,下列程式碼範例會顯示查詢運算式,其中 Select 子句會將查詢結果定義為匿名型別並具有四個成員:ProductName、Price、Discount 及 DiscountedPrice。ProductName 和 Price 成員值是取自 From 子句中定義的產品範圍變數。DiscountedPrice 成員值是在 Let 子句中計算。Discount 成員是靜態值。
' 10% discount
Dim discount_10 = 0.1
Dim priceList = _
From product In products _
Let DiscountedPrice = product.UnitPrice * (1 - discount_10) _
Select product.ProductName, Price = product.UnitPrice, _
Discount = discount_10, DiscountedPrice

Select 子句會引入新的範圍變數集供後續查詢子句使用,範圍中不再有先前的範圍變數。查詢運算式中最後一個 Select 子句會決定查詢的傳回值。例如,下列查詢會傳回總值超過 500 的每份客戶訂單的公司名稱和訂單 ID。第一個 Select 子句識別 Where 子句和第二個 Select 子句的範圍變數。第二個 Select 子句識別查詢傳回的值,做為新匿名型別。
Dim customerList = From cust In customers, ord In cust.Orders _
Select Name = cust.CompanyName, _
Total = ord.Total, ord.OrderID _
Where Total > 500 _
Select Name, OrderID

如果 Select 子句識別單一項目以傳回,則查詢運算式會傳回該單一項目之型別的集合。如果 Select 子句識別多個項目以傳回,則查詢運算式會依據選取的項目傳回新匿名型別的集合。例如,下列兩個查詢會依據 Select 子句傳回兩個不同型別的集合。第一個查詢會以字串傳回公司名稱集合。第二個查詢會傳回以公司名稱和地址資訊填入 (Populate) 之 Customer 物件的集合。
Dim customerNames = From cust In customers _
Select cust.CompanyName

Dim customerInfo As IEnumerable(Of Customer) = _
From cust In customers _
Select New Customer With {.CompanyName = cust.CompanyName, _
.Address = cust.Address, _
.City = cust.City, _
.Region = cust.Region, _
.Country = cust.Country}

五、聯結資料(Join 和 Group Join)
Join 關鍵字相當於 SQL 中的 INNER JOIN。它會根據兩個集合中項目的相符索引鍵值來合併兩個集合。
Join element In collection _
[ joinClause _ ]
[ groupJoinClause ... _ ]
On key1 Equals key2 [ And key3 Equals key4 [... ]
  • element:必要項。代表要聯結之集合的控制項變數。
  • collection:必要項。要與 Join 運算子左邊定義的集合進行合併的集合。Join 子句可以巢狀於另一個 Join 子句或 Group Join 子句中。
  • joinClause:選擇項,一個或多個用來進一步限定查詢的其他 Join 子句。
  • groupJoinClause:選擇項,一個或多個用來進一步限定查詢的其他 Group Join 子句。
  • key1 Equals key2:必要項。識別要聯結之集合的索引鍵。您必須使用 Equals 運算子來比較要聯結之集合中的索引鍵。若要識別多個索引鍵,您可以使用 And 運算子來合併聯結條件。key1 必須來自 Join 運算子左邊的集合,而 key2 必須來自 Join 運算子右邊的集合。

    聯結條件中使用的索引鍵,可以是包含集合中之多個項目的運算式。不過,每個索引鍵運算式只能包含其針對之集合中的項目。
可以執行隱含聯結 (Implicit Join) 來合併集合,而不需要使用 Join 子句。其做法是在 From 子句中加入多個 In 子句,然後指定 Where 子句以識別要使用的聯結索引鍵。
Dim customerIDs() = {"ALFKI", "VICTE", "BLAUS", "TRAIH"}

Dim customerList = From cust In customers, custID In customerIDs _
Where cust.CustomerID = custID _
Select cust.CompanyName

下列程式碼範例會使用 Join 子句聯結兩個集合。
Imports System.Diagnostics

Public Class JoinSample

Public Sub ListProcesses()
Dim processDescriptions As New List(Of ProcessDescription)
processDescriptions.Add(New ProcessDescription _
With {.ProcessName = "explorer", _
.Description = "Windows Explorer"})
processDescriptions.Add(New ProcessDescription _
With {.ProcessName = "winlogon", _
.Description = "Windows Logon"})
processDescriptions.Add(New ProcessDescription _
With {.ProcessName = "cmd", _
.Description = "Command Window"})
processDescriptions.Add(New ProcessDescription _
With {.ProcessName = "iexplore", _
.Description = "Internet Explorer"})

Dim processes = From proc In Process.GetProcesses _
Join desc In processDescriptions _
On proc.ProcessName Equals desc.ProcessName _
Select proc.ProcessName, proc.Id, desc.Description

For Each proc In processes
Console.WriteLine("{0} ({1}), {2}", _
proc.ProcessName, proc.Id, proc.Description)
Next
End Sub

End Class

Public Class ProcessDescription
Public ProcessName As String
Public Description As String
End Class

下列程式碼範例會使用 Join 子句並搭配兩個索引鍵資料行聯結兩個集合。
Imports System.Diagnostics

Public Class JoinSample2

Public Sub ListProcesses()
Dim processDescriptions As New List(Of ProcessDescription2)

' 8 = Normal priority, 13 = High priority
processDescriptions.Add(New ProcessDescription2 _
With {.ProcessName = "explorer", _
.Description = "Windows Explorer", _
.Priority = 8})
processDescriptions.Add(New ProcessDescription2 _
With {.ProcessName = "winlogon", _
.Description = "Windows Logon", _
.Priority = 13})
processDescriptions.Add(New ProcessDescription2 _
With {.ProcessName = "cmd", _
.Description = "Command Window", _
.Priority = 8})
processDescriptions.Add(New ProcessDescription2 _
With {.ProcessName = "iexplore", _
.Description = "Internet Explorer", _
.Priority = 8})

Dim processes = From proc In Process.GetProcesses _
Join desc In processDescriptions _
On proc.ProcessName Equals desc.ProcessName _
And proc.BasePriority Equals desc.Priority _
Select proc.ProcessName, proc.Id, desc.Description, _
desc.Priority

For Each proc In processes
Console.WriteLine("{0} ({1}), {2}, Priority = {3}", _
proc.ProcessName, _
proc.Id, _
proc.Description, _
proc.Priority)
Next
End Sub

End Class

Public Class ProcessDescription2
Public ProcessName As String
Public Description As String
Public Priority As Integer
End Class

Group Join 會將多個集合合併成單一階層式集合,這與 SQL 中的 LEFT JOIN 類似。
Group Join element [As type] In collection _
On key1 Equals key2 [ And key3 Equals key4 [... ] ] _
Into expressionList
  • element:必要項。代表要聯結之集合的控制項變數。
  • type:選擇項,element 的型別。如果未指定 type,則會從 collection 推斷 element 的型別。
  • collection:必要項。要與 Group Join 運算子左邊的集合進行合併的集合。Group Join 子句可以巢狀於另一個 Join 子句或 Group Join 子句中。
  • key1 Equals key2:必要項。識別要聯結之集合的索引鍵。您必須使用 Equals 運算子來比較要聯結之集合中的索引鍵。您可以使用 And 運算子識別多個索引鍵,藉以合併聯結條件 (Join Condition)。key1 參數必須來自 Join 運算子左邊的集合。key2 參數必須來自 Join 運算子右邊的集合。

    聯結條件中使用的索引鍵,可以是包含集合中之多個項目的運算式。不過,每個索引鍵運算式只能包含其針對之集合中的項目。
  • expressionList:必要項。一個或多個運算式,用於識別如何彙總 (Aggregate) 集合中的項目群組。若要為群組結果指定一個成員名稱,請使用 Group 關鍵字 ( = Group)。您也可以加入要套用至群組的彙總函式 (Aggregate Function)。
Group Join 子句是根據要聯結之集合中的相符索引鍵值來合併兩個集合。所產生的集合包含一個成員,這個成員參考第二個集合中所有與第一個集合中的索引鍵值相符合之項目的集合。您也可以指定彙總函式,以套用至從第二個集合群組得來的項目。
Group Join 作業所產生的集合中,可以包含 From 子句所識別集合中以及 Group Join 子句的Into 子句所識別運算式中的任意值組合。
Group Join 作業會傳回 Group Join 運算子左邊所識別之集合的所有結果。即使要聯結的集合中沒有符合項目,也是一樣。這和 SQL 中的 LEFT OUTER JOIN 相似。
您可以使用 Join 子句,將集合合併成單一集合。這相當於 SQL 中的 INNER JOIN。

下列程式碼範例會使用 Group Join 子句聯結兩個集合:
Dim customerList = From cust In customers _
Group Join ord In orders On _
cust.CustomerID Equals ord.CustomerID _
Into CustomerOrders = Group, _
OrderTotal = Sum(ord.Total) _
Select cust.CompanyName, cust.CustomerID, _
CustomerOrders, OrderTotal

For Each customer In customerList
Console.WriteLine(customer.CompanyName & _
" (" & customer.OrderTotal & ")")

For Each order In customer.CustomerOrders
Console.WriteLine(vbTab & order.OrderID & ": " & order.Total)
Next
Next

六、分組資料(Group By):加入 Group By 子句,根據項目的一個或多個欄位來分組查詢結果中的項目。也可以用來將彙總函式 (Aggregate Function) 套用至每個群組。群組作業是根據一個或多個索引鍵。
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
  • listField1, listField2:選擇項,明確識別要納入群組結果之欄位的一個或多個查詢變數的欄位。如果未指定欄位,所有查詢變數的欄位都會納入群組結果。
  • keyExp1:必要項。識別用以判斷項目群組之索引鍵的運算式。您可以指定一個以上的索引鍵,藉以指定複合索引鍵。
  • keyExp2:選擇項,與 keyExp1 結合以建立複合索引鍵的一個或多個額外索引鍵。
  • aggregateList:必要項。識別群組彙總方式的一個或多個運算式。若要識別群組結果的成員名稱,請使用下列格式的 Group 關鍵字:
    Into Group
您可以使用 Group By 子句,將查詢結果分成數個群組。群組作業是根據索引鍵,或由多個索引鍵所組成的複合索引鍵。與相符索引鍵值關聯的項目,就會加入相同的群組。

使用 Into 子句的 aggregateList 參數和 Group 關鍵字,可以識別用於參考群組的成員名稱。您也可以將彙總函式加入 Into 子句以計算群組項目的值。
Dim studentsByYear = From student In students _
Select student _
Group By year = student.Year _
Into Classes = Group

For Each yearGroup In studentsByYear
Console.WriteLine(vbCrLf & "Year: " & yearGroup.year)
For Each student In yearGroup.Classes
Console.WriteLine(" " & student.Last & ", " & student.First)
Next
Next

七、彙總函式(Aggregate):將一個或多個彙總函式 (Aggregate Function) 套用至集合。
Aggregate element [As type] In collection _
[, element2 [As type2] In collection2, [...]]
[ clause ]
Into expressionList
  • element:必要項。用來逐一查看集合項目的變數。
  • type:選擇項,element 的型別。如果未指定型別,則會從 collection 推斷 element 的型別。
  • collection:必要項。參考要操作的集合。
  • clause:選擇項,一個或多個查詢子句,例如 Where 子句,以限定套用 Aggregate 子句的查詢結果。
  • expressionList:必要項。一個或多個以逗號分隔的運算式,會識別套用至集合的彙總函式。您可以將別名 (Alias) 套用至彙總函式以指定查詢結果的成員名稱。如果未提供別名,則會使用彙總函式的名稱。如需範例,請參閱本主題稍後關於彙總函式的章節。
Aggregate 子句可以用來將彙總函式包含在查詢中。彙總函式會對值集執行檢查及計算,並傳回單一值。您可以使用查詢結果型別的成員來存取計算值。您可以使用的標準彙總函式為 All, Any、Average、Count、LongCount、Max、Min 及 Sum 函式。

彙總函式的結果包含在查詢結果中,做為查詢結果型別的欄位。您可以套用彙總函式結果的別名,以指定會保留彙總值之查詢結果型別之成員名稱。如果未提供別名,則會使用彙總函式的名稱。

Aggregate 子句可以用來開始查詢,也可以包含在查詢中做為額外子句。如果 Aggregate 子句用來開始查詢,則結果會是單一值,此值是 Into 子句中指定之彙總函式的結果。如果在 Into 子句中指定一個以上的彙總函式,查詢會傳回具有個別屬性的單一型別,以參考 Into 子句中每個彙總函式的結果。如果將 Aggregate 子句做為查詢中的額外子句,則查詢集合中傳回的型別會有個別的屬性,用以參考 Into 子句中每個彙總函式的結果。

All:如果集合中的所有項目都滿足指定的條件則傳回 true,否則會傳回 false。
Dim customerList1 = Aggregate order In orders _
Into AllOrdersOver100 = All(order.Total >= 100)

Any:如果集合中的任何項目滿足指定的條件則傳回 true,否則會傳回 false。
Dim customerList2 = From cust In customers _
Aggregate order In cust.Orders _
Into AnyOrderOver500 = Any(order.Total >= 500)

Average:計算集合中所有項目的平均值,或計算針對集合中所有項目而提供的運算式。
Dim customerOrderAverage = Aggregate order In orders _
Into Average(order.Total)

Count:計算集合中的項目數。您可以提供選擇性的 Boolean 運算式,只計算集合中滿足條件的項目數。
Dim customerOrderAfter1996 = From cust In customers _
Aggregate order In cust.Orders _
Into Count(order.OrderDate > #12/31/1996#)

Group:參考 Group By 或 Group Join 子句之群組結果的查詢結果。Group 函式只有在 Group By 或 Group Join 子句的 Into 子句中才有效。
LongCount:計算集合中的項目數。您可以提供選擇性的 Boolean 運算式,只計算集合中滿足條件的項目數。傳回 Long 的結果。
Max:計算集合的最大值,或計算針對集合中所有項目而提供的運算式。
Dim customerMaxOrder = Aggregate order In orders _
Into MaxOrder = Max(order.Total)

Min:計算集合的最小值,或計算針對集合中所有項目而提供的運算式。
Dim customerMinOrder = From cust In customers _
Aggregate order In cust.Orders _
Into MinOrder = Min(order.Total)

Sum:計算集合中所有項目的總和,或計算針對集合中所有項目而提供的運算式。
Dim customerTotals = From cust In customers _
Aggregate order In cust.Orders _
Into Sum(order.Total)

建立使用者定義的彙總函式: 您可以在查詢運算式中包含自己的自訂彙總函式,方法是將擴充方法加入至 IEnumerable<(Of <(T>)>) 型別。接著,您的自訂方法就可以在參考您的彙總函式的可列舉集合上,執行計算或作業。

例如,下列程式碼範例顯示用於計算數值集合中間值的自訂彙總函式。Median 擴充方法有兩個多載。第一個多載會接受型別 IEnumerable(Of Double) 的集合,做為輸入。如果 Median 彙總函式是針對型別 Double 的查詢欄位進行呼叫,就會呼叫此方法。Median 方法的第二個多載可以傳遞任何泛型型別。Median 方法的泛型多載會採用第二個參數,該參數參考 Func(Of T, Double) Lambda 運算式,將型別的值 (根據集合) 投射為型別 Double 的對應值。接著將中間值的計算委派 (Delegate) 至 Median 方法的其他多載。
Imports System.Runtime.CompilerServices

Module UserDefinedAggregates

' Calculate the median value for a collection of type Double.
_
Function Median(ByVal medianAggregate As IEnumerable(Of Double)) As Double
If medianAggregate.Count = 0 Then
Throw New InvalidOperationException("Cannot compute median for an empty set.")
End If

Dim sortedList = From number In medianAggregate Order By number

Dim medianValue As Double

Dim itemIndex = CInt(Int(sortedList.Count / 2))

If sortedList.Count Mod 2 = 0 Then
' Even number of items in list.
medianValue = ((sortedList(itemIndex) + sortedList(itemIndex - 1)) / 2)
Else
' Odd number of items in list.
medianValue = sortedList(itemIndex)
End If

Return medianValue
End Function

' "Cast" the collection of generic items as type Double and call the
' Median() method to calculate the median value.
_
Function Median(Of T)(ByVal medianAggregate As IEnumerable(Of T), _
ByVal selector As Func(Of T, Double)) As Double
Return (From element In medianAggregate Select selector(element)).Median()
End Function

End Module
下列程式碼範例顯示在型別 Integer 的集合和型別 Double 的集合上,呼叫 Median 彙總函式的範例查詢。在型別 Double 的集合上呼叫 Median 彙總函式的查詢會呼叫 Median 方法的多載,接受型別 Double 的集合以做為輸入。 在型別 Integer 的集合上呼叫 Median 彙總函式的查詢,則會呼叫 Median 方法的泛型多載。
Module Module1
Sub Main()
Dim numbers1 As Integer() = New Integer() {1, 2, 3, 4, 5}
Dim query1 = Aggregate num In numbers1 Into Median(num)
Console.WriteLine("Median = " & query1)
Dim numbers2 As Double() = New Double() {1.9, 2, 8, 4, 5.7, 6, 7.2, 0}
Dim query2 = Aggregate num In numbers2 Into Median()
Console.WriteLine("Median = " & query2)
End Sub
End Module

八、Distinct 子句:限制目前範圍變數的值,以免後續查詢子句中出現重複的值。
Distinct
您可以使用 Distinct 子句傳回只含唯一項目的清單。Distinct 子句會使查詢忽略重複的查詢結果。Distinct 子句會套用至 Select 子句所指定之所有傳回欄位中的重複值。如果未指定 Select 子句,則 Distinct 子句會套用至 From 子句中所識別查詢的範圍變數。如果範圍變數並非不變的型別,則只有當型別的所有成員都符合現有的查詢結果時,查詢才會忽略查詢結果。
Dim customerOrders = From cust In customers, ord In orders _
Where cust.CustomerID = ord.CustomerID _
Select cust.CompanyName, ord.OrderDate _
Distinct

九、Let 子句:計算出一個值並將該值指派給查詢中的新變數。
Let variable = expression [, ...]
  • variable:必要項。可用於參考所提供運算式之結果的別名 (Alias)。
  • expression:必要項。會進行評估並指派給指定變數的運算式。
Let 子句可以讓您計算每個查詢結果的值並使用別名參考這些值。別名可以用在其他子句中,例如 Where 子句。Let 子句可以讓您建立較易讀取的查詢陳述式,因為您可以指定查詢中包含之運算式子句的別名,並且在每次使用運算式子句的時候取代此別名。

您可以在 Let 子句中包含任意數量的 variable 和 expression 指派。請使用逗號 (,) 分隔每個指派。

下列程式碼範例使用 Let 子句計算產品的 10 % 折扣。
Dim discountedProducts = From prod In products _
Let Discount = prod.UnitPrice * 0.1 _
Where Discount >= 50 _
Select prod.ProductName, prod.UnitPrice, Discount

For Each prod In discountedProducts
Console.WriteLine("Product: {0}, Price: {1}, Discounted Price: {2}", _
prod.ProductName, prod.UnitPrice.ToString("$#.00"), _
(prod.UnitPrice - prod.Discount).ToString("$#.00"))
Next

十、Skip 子句:略過集合中指定的項目數目,然後傳回其餘項目。
Skip count
  • count:必要項。數值或運算式,表示要連續略過的項目數。
Skip 子句會使查詢略過結果清單開頭的項目並傳回剩餘項目。略過的項目數是由 count 參數識別。

您可以在查詢的任何區段搭配使用 Skip 子句和 Take 子句,以傳回某個範圍的資料。若要這樣做,請傳遞所需範圍中第一個項目的索引給 Skip 子句,並傳遞範圍的大小給 Take 子句。

當您在查詢中使用 Skip 子句時,可能還需要確保結果的傳回順序可讓 Skip 子句略過所要的結果。

您可以使用 SkipWhile 子句,指定只略過符合所指定條件的特定項目。

下列程式碼範例會搭配使用 Skip 子句和 Take 子句,以頁面為單位傳回查詢資料。GetCustomers 函式會使用 Skip 子句一直略過清單中的客戶直到遇到所提供的起始索引值,然後使用 Take 子句自該索引值起傳回一頁的客戶。
Public Sub PagingSample()
Dim pageNumber As Integer = 0
Dim pageSize As Integer = 10

Dim customersPage = GetCustomers(pageNumber * pageSize, pageSize)

Do While customersPage IsNot Nothing
Console.WriteLine(vbCrLf & "Page: " & pageNumber + 1 & vbCrLf)

For Each cust In customersPage
Console.WriteLine(cust.CustomerID & ", " & cust.CompanyName)
Next

Console.WriteLine(vbCrLf)

pageNumber += 1
customersPage = GetCustomers(pageNumber * pageSize, pageSize)
Loop
End Sub

Public Function GetCustomers(ByVal startIndex As Integer, _
ByVal pageSize As Integer) As List(Of Customer)

Dim customers = GetCustomerList()

Dim returnCustomers = From cust In customers _
Skip startIndex Take pageSize

If returnCustomers.Count = 0 Then Return Nothing

Return returnCustomers
End Function

十一、Skip While 子句:一直略過集合中的項目,直到指定的條件不是 true,然後傳回剩餘項目。
Skip While expression
  • expression:必要項。運算式,表示要對項目測試的條件。這個運算式必須傳回 Boolean 值或功能上的對等用法,例如待評估為 Boolean 的 Integer。
Skip While 子句會自查詢結果開頭起一直略過項目,直到提供的 expression 傳回 false 為止。在 expression 傳回 false 之後,查詢會傳回所有剩餘項目。傳回剩餘結果時會忽略 expression。

Skip While 子句跟Where 子句有個不同點,即 Where 子句可用來排除查詢中所有不符合特定條件的項目。Skip While 子句則只會排除在第一次不符合條件之前遇到的項目。當您使用已排序的查詢結果時,Skip While 子句會很有幫助。

您可以使用 Skip 子句,略過查詢結果的前幾筆結果。

下列程式碼範例會使用 Skip While 子句一直略過結果,直到找到第一個美國客戶為止。
Public Sub SkipWhileSample()
Dim customers = GetCustomerList()

' Return customers starting from the first U.S. customer encountered.
Dim customerList = From cust In customers _
Order By cust.Country _
Skip While IsInternationalCustomer(cust)

For Each cust In customerList
Console.WriteLine(cust.CompanyName & vbTab & cust.Country)
Next
End Sub

Public Function IsInternationalCustomer(ByVal cust As Customer) As Boolean
If cust.Country = "USA" Then Return False

Return True
End Function

十二、Take 子句:自集合的開頭起連續傳回所指定數目的項目。
Take count
  • count:必要項。數值或運算式,表示要連續傳回的項目數。
Take 子句會使查詢自結果清單開頭起,連續加入所指定數目的項目。要加入的項目數是由 count 參數指定。

您可以在查詢的任何區段搭配使用 Take 子句和 Skip 子句,以傳回某個範圍的資料。若要這樣做,請傳遞所需範圍中第一個項目的索引給 Skip 子句,並傳遞範圍的大小給 Take 子句。在此情況下,Take 子句必須指定在 Skip 子句之後。

當您在查詢中使用 Take 子句時,可能還需要確保結果的傳回順序可讓 Take 子句加入所要的結果。

您可以使用 TakeWhile 子句,指定只傳回符合所指定條件的特定項目。

下列程式碼範例會搭配使用 Take 子句和 Skip 子句,以頁面為單位傳回查詢資料。GetCustomers 函式會使用 Skip 子句一直略過清單中的客戶直到遇到所提供的起始索引值,然後使用 Take 子句自該索引值起傳回一頁的客戶。
Public Sub PagingSample()
Dim pageNumber As Integer = 0
Dim pageSize As Integer = 10

Dim customersPage = GetCustomers(pageNumber * pageSize, pageSize)

Do While customersPage IsNot Nothing
Console.WriteLine(vbCrLf & "Page: " & pageNumber + 1 & vbCrLf)

For Each cust In customersPage
Console.WriteLine(cust.CustomerID & ", " & cust.CompanyName)
Next

Console.WriteLine(vbCrLf)

pageNumber += 1
customersPage = GetCustomers(pageNumber * pageSize, pageSize)
Loop
End Sub

Public Function GetCustomers(ByVal startIndex As Integer, _
ByVal pageSize As Integer) As List(Of Customer)

Dim customers = GetCustomerList()

Dim returnCustomers = From cust In customers _
Skip startIndex Take pageSize

If returnCustomers.Count = 0 Then Return Nothing

Return returnCustomers
End Function

十三、Take While 子句:一直包含集合中的項目直到指定的條件不是 true,然後略過剩餘項目。
Take While expression
  • expression:必要項。運算式,表示要對項目測試的條件。這個運算式必須傳回 Boolean 值或功能上的對等用法,例如待評估為 Boolean 的 Integer。
Take While 子句會自查詢結果開頭起一直包含項目,直到提供的 expression 傳回 false 為止。在 expression 傳回 false 之後,查詢會略過所有剩餘項目。傳回剩餘結果時會略過 expression。

Take While 子句跟Where 子句有個不同點,即 Where 子句可用來包含查詢中所有符合特定條件的項目。Take While 子句則只會包含在第一次不合條件之前遇到的項目。當您使用已排序的查詢結果時,Take While 子句會很有幫助。

下列程式碼範例會使用 Take While 子句擷取結果,直到找到第一個沒有任何訂單的客戶為止。
Public Sub TakeWhileSample()
Dim customers = GetCustomerList()

' Return customers until the first customer with no orders is found.
Dim customersWithOrders = From cust In customers _
Order By cust.Orders.Count Descending _
Take While HasOrders(cust)

For Each cust In customersWithOrders
Console.WriteLine(cust.CompanyName & " (" & cust.Orders.Length & ")")
Next
End Sub

Public Function HasOrders(ByVal cust As Customer) As Boolean
If cust.Orders.Length > 0 Then Return True

Return False
End Function

頭快爆了,大部份重點都加進來了,就等慢慢消化吸收了!

[+/-] 繼續閱讀...

2008年4月23日 星期三

LINQ初探

LINQ(Language-Integrated Query)是VS2008和Framework 3.5中的突破性創舉,是一系列擴充方法的組合,它的核心是System.Collection.Generic命名空間中,名稱為IEnumerable(T)這個型別,其中所定義的方法成員,成了LINQ資料查詢技術的基礎,可適用於各種型態的資料來源的存取操作,包括SQL Server資料庫、XML文件、ADO.NET Dataset、文字檔、陣列、以及任何支援IEnumerable或泛型IEnumerable(T)介面的物件組成的集合。

當有一陣列內容為:

Dim sFruit As String() = {"葡萄", "香蕉", "哈蜜瓜", "香瓜", "棷子", "蘋果", "木瓜"}
若要找出以"瓜"為結尾的陣列元素,過去的寫法通常是用迴圈來取得(為搭配後面的程式,此處用兩組迴圈完成,而不是直接以一組迴圈取得。第一組迴圈為主要取得符合條件的元素陣列,在後續程式中,將會被LINQ寫法取代):
Dim s As String = ""
Dim myEnumFruit As New ArrayList
For Each myFruit As String In sFruit
If myFruit.EndsWith("瓜") Then
myEnumFruit.Add(myFruit)
End If
Next
Dim s As String = ""
For Each myFruit As String In myEnumFruit
s &= myFruit & vbCrLf
Next
MsgBox(s)
若改為應用IEnumerable時,則可寫成:
Dim myEnumFruit As IEnumerable(Of String) = sFruit.Where(Function(fruit) fruit.EndsWith("瓜"))
Dim s As String = ""
For Each myFruit As String In myEnumFruit
s &= myFruit & vbCrLf
Next
MsgBox(s)
上面程式碼,當執行更為複雜的查詢運算時,程式會變得更加複雜而不易理解。
而若直接以LINQ寫法來處理時,將上述第一行程式碼改為:
Dim myEnumFruit = From fruit In sFruit Where fruit.EndsWith("瓜") Select fruit
因為採用與SQL類似的From、Where、Select...等,讓程式設計時,針對各種不同的資料來源,可以運用統一的資料存取模型去操作,不必再去記一堆針對不同資料來源的處理方式,也不必再去理會那複雜而難以理解的IEnumerable寫法,而只需要將心力花費在程式的實際應用面部份即可。

然而,要注意的是,上頭LINQ寫法中的myEnumFruit這個查詢變數本身並不會採取任何動作,也不會傳回任何資料,它只會儲存查詢定義,真正負責查詢的是後面的For Each迴圈。因此,上述寫法稱為『延後執行』。

而若是要改寫為『立即執行』方式,則可如下:
Dim myEnumFruit As List(Of String) = (From fruit In sFruit Where fruit.EndsWith("瓜") Select fruit).ToList

關於『延後執行』與『立即執行』的差異,由下列兩組程式便可看出:
一、延後執行

Dim sFruit As String() = {"葡萄", "香蕉", "哈蜜瓜", "香瓜", "棷子", "蘋果", "木瓜"}
Dim myEnumFruit = From fruit In sFruit Where fruit.EndsWith("瓜") Select fruit
sFruit(1) = "胡瓜" '因是延後執行, 這項內容改變, 將導致後續結果也跟著改變, 會在結果中出現"胡瓜"這一項
Dim s As String = ""
For i As Integer = 0 To myEnumFruit.Count - 1
s &= myEnumFruit(i) & vbCrLf
Next
MsgBox(s)
二、立即執行

Dim sFruit As String() = {"葡萄", "香蕉", "哈蜜瓜", "香瓜", "棷子", "蘋果", "木瓜"}
Dim myEnumFruit As List(Of String) = _
(From fruit In sFruit Where fruit.EndsWith("瓜") Select fruit).ToList
sFruit(1) = "胡瓜" '因是立即執行, 這項內容改變, 並沒有影響後續結果, 因此"胡瓜"並沒有在結果中出現
Dim s As String = ""
For i As Integer = 0 To myEnumFruit.Count - 1
s &= myEnumFruit(i) & vbCrLf
Next
MsgBox(s)


運用上述LINQ技術,應引用下面兩個命名空間
Imports System.Collections.Generic
Imports System.Linq
不過,似乎VB2008已貼心的自動引入,即使我們在程式中沒有打入這兩行引入命名空間程式碼,亦可正常執行。

LINQ技術包括三個部份,LINQ to ObjectsLINQ to XMLLINQ to ADO.NET(含LINQ to SQLLINQ to Dataset)。

[+/-] 繼續閱讀...

2008年4月21日 星期一

現金流量分析

以下為公開資訊觀測站裡的財務分析資料所列出者,包括:

  1. 現金流量比率:
    現金流量比率 = 營業活動淨現金流量 / 流動負債
  2. 現金流量允當比率:
    現金流量允當比率 = 最近五年度營業活動淨現金流量 / 最近五年度(資本支出 + 存貨增加額 + 現金股利)
  3. 現金再投資比率:
    現金再投資比率 = (營業活動淨現金流量 - 現金股利) / (固定資產毛額 + 長期投資 + 其他資產 + 營運資金)
如何運用?以後再研究!

相關連結:財務報表分析

[+/-] 繼續閱讀...

2008年4月20日 星期日

每股盈餘 - 個股實例(2324)

每股盈餘(Earnings Per Share,簡稱EPS),其公式為:

每股盈餘(EPS) = (本年度稅後純益 – 特別股股利) / 本年度流通在外的股份加權平均數
其中,需要兩項資訊,即稅後純益本年度流通在外的股份加權平均數

公開資訊觀測站中,以2324查取,
95年第四季損益表查入,不必再經過計算,可直接查得每股盈餘:2.35。至於若要自行計算,那就得先查出本年度流通在外的股份加權平均數才行,這我不會。

這個部份的數據,並沒有一定標準存在。主要應用,都是針對個股在不同年度間的互相比較,或與相同性質之同業間的互相比較為主。

相關連結:獲利能力分析

[+/-] 繼續閱讀...

稅後純益率 - 個股實例(2324)

稅後純益率(Net profit ratio),其公式為:

稅後純益率 = 稅後純益 / 營業收入淨額 *100%
其中,需要兩項資訊,即稅後純益營業收入淨額

公開資訊觀測站中,以2324查取,
95年第四季損益表查入,可得本期淨利(淨損):8751466、營業收入合計:303070667。如此算得稅後純益率為:2.89%
後一項數據,便是公開資訊觀測站中常用報表頁籤中的財務分析資料所列出者。

這個部份的數據,並沒有一定標準存在。主要應用,都是針對個股在不同年度間的互相比較,或與相同性質之同業間的互相比較為主。

相關連結:獲利能力分析

[+/-] 繼續閱讀...

總資產報酬率 - 個股實例(2324)

總資產報酬率(Return on total assets)(ROA),其公式為:

稅後總資產報酬率 = (稅後純益 + 利息費用 * (1-所得稅率)) / 平均資產總額 *100%
其中,需要兩項資訊,即年度利益平均資產總額本期淨利(淨損)(稅後純益)、利息費用、所得稅率。

公開資訊觀測站中,以2324查取,
95年第四季資產負債表查入,可得95年度資產總計:154580205。94年度資產總計:121307588。其平均資產總計為:137943896.5。
95年第四季損益表查入,可得本期淨利(淨損):8751466、利息費用:199781
再由95年第一季財務報告書之第25頁可找到仁寶之營利事業所得稅率為:25%。
(這部份是最麻煩的部份,必須各別仔細查表才能得知)
如此算得稅後純益總資產報酬率為:6.45%
此項數據,便是公開資訊觀測站中常用報表頁籤中的財務分析資料所列出者。

這個部份的數據,並沒有一定標準存在。主要應用,都是針對個股在不同年度間的互相比較,或與相同性質之同業間的互相比較為主。

而到此為止可以發現,絕大部份比率分析都可以在公開資訊觀測站裡的『常用報表』頁內的『財務分析資料』中找到已經計算完成的比率資訊,根本不必自己花時間再去尋找計算。尤其是碰到如上述需要另外查非表格式的第一季財務報告書中的營利事業所得稅,那就更費時費力了。

相關連結:獲利能力分析

[+/-] 繼續閱讀...

股東權益報酬率 - 個股實例(2324)

股東權益(淨值)報酬率(Return on equity)(ROE),其公式為:

股東權益(淨值)報酬率 = (年度)淨利 / (平均)股東權益 *100%
其中,需要兩項資訊,即年度利益平均股東權益。而年度淨利,在本例中取繼續營業單位稅前淨利(淨損)(稅前淨益)本期淨利(淨損)

公開資訊觀測站中,以2324查取,
95年第四季資產負債表查入,可得95年度股東權益總計:71233223。94年度股東權益總計:64794093。其平均股東權益為:68013658。
分子部份若取稅前淨利,以95年第四季損益表查入,可得繼續營業單位稅前淨利(淨損):9236027。如此算得稅前淨利股東權益報酬率為:13.60%
而分子部份若取稅後純益,查表可得本期淨利(淨損):8751466。如此算得稅後純益股東權益報酬率為:12.87%
後一項數據,便是公開資訊觀測站中常用報表頁籤中的財務分析資料所列出者。

這個部份的數據,並沒有一定標準存在。主要應用,都是針對個股在不同年度間的互相比較,或與相同性質之同業間的互相比較為主。

相關連結:獲利能力分析

[+/-] 繼續閱讀...

股本(資本)報酬率 - 個股實例(2324)

股本(資本)報酬率,其公式為:

股本(資本)報酬率 = (年度)利益 / 股本額 *100%
其中,需要兩項資訊,即年度利益股本額。而年度利益,在本例中取營業淨利(淨損)繼續營業單位稅前淨利(淨損)(稅前純益)

公開資訊觀測站中,以2324查取,
95年第四季資產負債表查入,可得普通股股本(股本額):38114581。
分子部份若以營業利益,以95年第四季損益表查入,可得營業淨利(淨損):9236027。如此算得營業利益佔實收資本比率(營業淨利股本報酬率)為:24.23%
而分子部份若取稅前純益,查表可得繼續營業單位稅前淨利(淨損)(稅前純益):10391293。如此算得稅前純益佔實收資本比率(稅前淨利股本報酬率)為:27.26%
此兩項數據,皆與公開資訊觀測站中常用報表頁籤中的財務分析資料所列出者相符合。

這個部份的數據,並沒有一定標準存在。主要應用,都是針對個股在不同年度間的互相比較,或與相同性質之同業間的互相比較為主。

相關連結:獲利能力分析

[+/-] 繼續閱讀...

獲利能力分析

獲利能力分析(Analysis of the Ability to Benefit)(Profitability analysis) 可針對三部份來探討:

  1. 投資報酬率
    報酬對投資的比率,即平均每投資一元(股本、股東權益、資產總額)可獲多少百分比的利益報酬(營業淨利、稅前淨利、稅後純益)。投資報酬率越大,獲利能力越高;投資報酬率越小,獲利能力越低。
    投資報酬率 = 報酬 / 投資 *100%
    可依投資種類而分成三種:
    1. 股本(資本)報酬率 = (年度)利益 / 股本額 *100%
      股本額,是指公司期末實際發行並已認足股款的實繳股本,或指上述實繳股本的全年加權平均數。
      而依利益種類,可再區分為以下三種:
      • 營業淨利股本報酬率
      • 稅前淨利股本報酬率
      • 稅後純益股本報酬率

    2. 股東權益(淨值)報酬率(Return on equity)(ROE) = (年度)淨利 / (平均)股東權益 *100%
      • 稅前淨利股東權益報酬率
      • 稅後純益股東權益報酬率

    3. 總資產(本)報酬率(Return on total assets)(ROA)
      • 稅前總資產報酬率 = (稅前淨利 + 利息費用) / 平均資產總額 *100%
      • 稅後總資產報酬率 = (稅後純益 + 利息費用 * (1-所得稅率)) / 平均資產總額 *100%

      (營利事業所得稅率,要上觀測站去查)

    4. 財務槓桿指數 = 股東權益報酬率 / 總資產報酬率
      財務槓桿因素 = 股東權益報酬率 - 總資產報酬率

  2. 損益結構分析
    平均每銷貨一元的營業收入(營業收入淨額)可獲得多少百分比的利益或利潤(營業毛利、營業淨利、稅前淨利、稅後純益)。比率越大,獲利能力越高;比率越小,獲利能力越低。
    • 營業毛利率 = 營業毛利 / 營業收入淨額 *100%
    • 營業淨利率 = 營業淨利 / 營業收入淨額 *100%
    • 稅前淨利率 = 稅前淨利 / 營業收入淨額 *100%
    • 稅後純益率(Net profit ratio) = 稅後純益 / 營業收入淨額 *100%

  3. 每股盈餘、股利與市價的關係
    每股盈餘(Earnings Per Share,簡稱EPS),是用以顯示公司本年度平均每一普通股可獲多少盈餘報酬(稅後純益)的比率。分析時一般儘以普通股為對象,特別股並不包含在內;這是因為特別股一般只有分配定額股利的權利,性質較似公司債,因此計算時需將之減除。每股盈餘(EPS) = (本年度稅後純益(Net income) – 特別股股利(preferred stock dividends)) / 本年度流通在外的股份加權平均數(Weighted average outstanding shares)每股股利,則是每股股份(本年度流通在外的股份加權平均數)可以發放股利(現金股利或股票股利)的金額。每股股利 = 股利 / 股數
    • 每股現金股利 = 現金股利 / 股數
    • 每股股票股利 = 股票股利 / 股數
    本益比(Price-Earnings Ratio,簡稱P/E Ratio),是指每股市價對每股盈餘的比率。本利比,則是每股市價對每股股利的比率。本益比(P/E Ratio) = 每股市價 / 每股盈餘 本利比 = 每股市價 / 每股股利

相關連結:財務報表分析

[+/-] 繼續閱讀...

存貨週轉率 - 個股實例(2324)

存貨週轉率(Average inventory turnover rate)其公式為:

存貨週轉率(次) = 銷貨成本 / 平均存貨
        = 銷貨成本 / ((期初存貨+期末存貨)/2)
其中,需要兩項資訊,即營業成本合計(或銷貨成本)存貨

95年第一季資產負債表查入,可得95年第一季存貨:8926264。
95年第一季損益表查入,可得95年第一季營業成本合計:56608000。如此算得95年第一季存貨週轉率為:6.34次,換算年度存貨週轉率為(乘以4):25.37次。

95年第二季資產負債表查入,可得95年第二季存貨:10313918。
95年第二季損益表查入,可得95年第二季營業成本合計:114357359。如此算得95年第二季存貨週轉率為:11.09次,換算年度存貨週轉率為(乘以2):22.18次。

95年第三季資產負債表查入,可得95年第三季存貨:12269574。
95年第三季損益表查入,可得95年第三季營業成本合計:190172263。如此算得95年第三季存貨週轉率為:15.50次,換算年度存貨週轉率為(乘以4/3):20.67次。

95年第四季資產負債表查入,可得95年第四季存貨:10840473。而94年第四季存貨(期初):9614722。
95年第四季損益表查入,可得95年第四季營業成本合計:288656861。如此算得95年第四季存貨週轉率為:28.22次,而也就等同於95年度的存貨週轉率。(這裡,採取期初期末之平均值算法,所得之結果則與公開資訊觀測站所提供之數據相同)

而此處若直接再加以計算其平均售貨日數 = 365 / 存貨週轉率 = 12.93。這個數字相當好,一般來說,如果超過60天以上,就算是較長期的平均售貨日數了,也就代表著庫存管控不良。

而若以年度存貨週轉率來做比較的話,以95年度簡明資產負債表(三年)95年度簡明損益表(三年)查入,則會發現,簡明資產負債表中並無存貨項目。因此,此項分析仍得從上面的正式報表中來查。

96年第一季資產負債表96年第一季損益表查入,可得存貨:12327942,營業成本合計:92360342。如此算得96年第一季存貨週轉率為:7.49次,換算年度存貨週轉率為(乘以4):29.97次。
96年第二季資產負債表96年第二季損益表查入,可得存貨:13047114,營業成本合計:186497401。如此算得96年第二季存貨週轉率為:14.29次,換算年度存貨週轉率為(乘以2):28.59次。
96年第三季資產負債表96年第三季損益表查入,可得存貨:17800160,營業成本合計:296328909。如此算得96年第三季存貨週轉率為:16.65次,換算年度存貨週轉率為(乘以4/3):22.20次。
至於96年第四季資產負債表96年第四季損益表什麼時候會公佈,依據規定,四月底前必須公佈前一年度之年度報表。

相關連結:經營效能分析

[+/-] 繼續閱讀...

應收帳款週轉率 - 個股實例(2324)

應收帳款週轉率(Receivables turnover rate),其公式為:

應收帳款週轉率(次) = 銷貨淨額 / 平均應收帳款
          = 銷貨淨額 / ((期初應收帳款+期末應收帳款)/2)
其中,需要兩項資訊,即營業收入(或銷貨淨額)應收帳款淨額

95年第一季資產負債表查入,可得95年第一季應收帳款淨額+應收帳款_關係人淨額:38904743+579192=39483935。
95年第一季損益表查入,可得95年第一季營業收入合計:59656195。如此算得95年第一季應收帳款週轉率為:1.51次,換算年度應收帳款週轉率為(乘以4):6.04次。

95年第二季資產負債表查入,可得95年第二季應收帳款淨額+應收帳款_關係人淨額:36201032+626942=36827974。
95年第二季損益表查入,可得95年第二季營業收入合計:120280280。如此算得95年第二季應收帳款週轉率為:3.27次,換算年度應收帳款週轉率為(乘以2):6.53次。

95年第三季資產負債表查入,可得95年第三季應收帳款淨額+應收帳款_關係人淨額:46621437+540213=47161650。
95年第三季損益表查入,可得95年第三季營業收入合計:199751299。如此算得95年第三季應收帳款週轉率為:4.24次,換算年度應收帳款週轉率為(乘以4/3):5.65次。

95年第四季資產負債表查入,可得95年第四季應收帳款淨額+應收帳款_關係人淨額:60777982+693368=61471350(期末)。而94年第四季應收帳款淨額+應收帳款_關係人淨額:38091939+1058376=39150315(期初)。
95年第四季損益表查入,可得95年第四季營業收入合計:303070667。如此算得95年第四季應收帳款週轉率為:6.02次,而也就等同於95年度的應收帳款週轉率。這裡,採用期初應收帳款淨額與期末應收帳款淨額之平均值來當分母,計算出之結果與公開資訊觀測站中的常用報表中的『財務分析資料』項目中所顯示的結果(6.02次)相同。

而此處若直接再加以計算其應收帳款收現日數 = 365 / 應收帳款週轉率 = 60.63,大約剛好2個月左右。這個數字還算不錯,一般來說,如果超過2.5個月,就算是較長期的應收款日數了,也就代表著出現呆帳的機率將會提高。

而若以年度應收帳款週轉率來做比較的話,以95年度簡明資產負債表(三年)95年度簡明損益表(三年)查入,則會發現,簡明資產負債表中並無應收帳款項目。因此,此項分析仍得從上面的正式報表中來查。

96年第一季資產負債表96年第一季損益表查入,可得應收帳款淨額+應收帳款_關係人淨額:59891422+1612011=61503433,營業收入合計:96980442。如此算得96年第一季應收帳款週轉率為:1.58次,換算年度應收帳款週轉率為(乘以4):6.31次。
96年第二季資產負債表96年第二季損益表查入,可得應收帳款淨額+應收帳款_關係人淨額:63799750+1707503=65507253,營業收入合計:195856814。如此算得96年第二季應收帳款週轉率為:2.99次,換算年度應收帳款週轉率為(乘以2):5.98次。
96年第三季資產負債表96年第三季損益表查入,可得應收帳款淨額+應收帳款_關係人淨額:70920371+1201521=72121892,營業收入合計:311233016。如此算得96年第三季應收帳款週轉率為:4.32次,換算年度應收帳款週轉率為(乘以4/3):5.75次。
至於96年第四季資產負債表96年第四季損益表什麼時候會公佈,依據規定,四月底前必須公佈前一年度之年度報表。

相關連結:經營效能分析

[+/-] 繼續閱讀...

固定資產週轉率 - 個股實例(2324)

固定資產週轉率(Fixed assets turnover rate),其公式為:

固定資產週轉率(次) = 銷貨淨額 / 平均固定資產
          = 銷貨淨額 / ((期初固定資產+期末固定資產)/2)
其中,需要兩項資訊,即營業收入(或銷貨淨額)固定資產總額

95年第一季資產負債表查入,可得95年第一季固定資產淨額:2594121。
95年第一季損益表查入,可得95年第一季營業收入合計:59656195。如此算得95年第一季固定資產週轉率為:23次,換算年度固定資產週轉率為(乘以4):92次。

95年第二季資產負債表查入,可得95年第二季固定資產淨額:2447541。
95年第二季損益表查入,可得95年第二季營業收入合計:120280280。如此算得95年第二季固定資產週轉率為:49.1次,換算年度固定資產週轉率為(乘以2):98.3次。

95年第三季資產負債表查入,可得95年第三季固定資產淨額:2417701。
95年第三季損益表查入,可得95年第三季營業收入合計:199751299。如此算得95年第三季固定資產週轉率為:82.6次,換算年度固定資產週轉率為(乘以4/3):110.2次。

95年第四季資產負債表查入,可得95年第四季固定資產淨額:2401584。
95年第四季損益表查入,可得95年第四季營業收入合計:303070667。如此算得95年第四季固定資產週轉率為:126.2次,而也就等同於95年度的固定資產週轉率。

而若以年度固定資產週轉率來做比較的話,以95年度簡明資產負債表(三年)95年度簡明損益表(三年)查入,可得:
94年固定資產淨額:2931242,94年營業收入:220902441。如此算得之94年度固定資產週轉率為:75.36次
95年固定資產淨額:2401584,95年營業收入:303070667。如此算得之95年度固定資產週轉率為:126.2次
由此,亦可看出仁寶在95年度的固定資產週轉率較94年度者為高,企業經營效能在提高中。

96年第一季資產負債表96年第一季損益表查入,可得固定資產淨額:2395239,營業收入合計:96980442。如此算得96年第一季固定資產週轉率為:40.49次,換算年度固定資產週轉率為(乘以4):161.96次。
96年第二季資產負債表96年第二季損益表查入,可得固定資產淨額:2380045,營業收入合計:195856814。如此算得96年第二季固定資產週轉率為:82.29次,換算年度固定資產週轉率為(乘以2):164.58次。
96年第三季資產負債表96年第三季損益表查入,可得期末資產總計:2485900,營業收入合計:311233016。如此算得96年第三季固定資產週轉率為:125.2次,換算年度固定資產週轉率為(乘以4/3):166.93次。
至於96年第四季資產負債表96年第四季損益表什麼時候會公佈,依據規定,四月底前必須公佈前一年度之年度報表。

這裡的計算,分母已不再使用平均固定資產淨額了,而是直接取用當年度(或當季)固定資產淨額為分母來計算。

相關連結:經營效能分析

[+/-] 繼續閱讀...

2008年4月19日 星期六

總資產週轉率 - 個股實例(2324)

總資產週轉率(Total Assets Turnover Rate),其公式為:

總資產週轉率(次) = 營業收入(或銷貨淨額) / 平均資產總額
         = 營業收入(或銷貨淨額) / ((期初資產總額+期末資產總額)/2)
其中,需要兩項資訊,即營業收入(或銷貨淨額)期初資產總額期末資產總額

公開資訊觀測站中,以2324查取資產負債表損益表時,損益表中的營業收入項目中若只有銷貨淨額的話,仍會總結成為營業收入項目中,因此,直接抓取『營業收入』項目使用即可。而至於期初資產總額,即為上一會計期間之資產總額,即,若是以季為單位計算即為上一季,而若是以年度為單位計算則為上一年度。

94年第四季資產負債表查入,可得95年第一季期初資產總計:121307588。
95年第一季資產負債表查入,可得95年第一季期末資產總計:125486464。
95年第一季損益表查入,可得95年第一季營業收入合計:59656195。如此算得95年第一季總資產週轉率為:0.483次,換算年度總資產週轉率為(乘以4):1.934次。

95年第二季資產負債表查入,可得95年第二季期末資產總計:125016403。
95年第二季損益表查入,可得95年第二季營業收入合計:120280280。如此算得95年第二季總資產週轉率為:0.960次,換算年度總資產週轉率為(乘以2):1.921次。

95年第三季資產負債表查入,可得95年第三季期末資產總計:132726696。
95年第三季損益表查入,可得95年第三季營業收入合計:199751299。如此算得95年第三季總資產週轉率為:1.55次,換算年度總資產週轉率為(乘以4/3):2.067次。

95年第四季資產負債表查入,可得95年第四季期末資產總計:154580205。
95年第四季損益表查入,可得95年第四季營業收入合計:303070667。如此算得95年第四季總資產週轉率為:2.109次,而也就等同於95年度的總資產週轉率。

再以簡明損益表(三年)查得之95年度資料比對,與前面所查之95年第四季完全相同
故,日後查尋損益表之資料來源時,若是第四季資料已出,則可直接取之;否則,將只能由最後發表的那一季資料來預估。但是,若要評估單季的週轉率,則需將本季累計營收減去上季累計營收,才是本季的實際營收。

而由上面計算中可以看到,總資產週轉率在逐季增加中。代表仁寶在95年這數季來在運用總資產的效率方面愈來愈高,這對企業的經營效能來說,是有利的。

而若以年度總資產週轉率來做比較的話,以95年度簡明資產負債表(三年)95年度簡明損益表(三年)查入,可得:
94年期初資產總計(即93年期末資產總計):105884229,94年期末資產總計:121307588,94年營業收入:220902441。如此算得之94年度總資產週轉率為:1.945次
95年期初資產總計(即94年期末資產總計):121307588,95年期末資產總計:154580205,95年營業收入:303070667。如此算得之95年度總資產週轉率為:2.197次
由此,亦可看出仁寶在95年度的總資產週轉率較94年度者為高,企業經營效能在提高中。

96年第一季資產負債表96年第一季損益表查入,可得期末資產總計:154042684,營業收入合計:96980442。如此算得96年第一季總資產週轉率為:0.628次,換算年度總資產週轉率為(乘以4):2.514次。
96年第二季資產負債表96年第二季損益表查入,可得期末資產總計:160074098,營業收入合計:195856814。如此算得96年第二季總資產週轉率為:1.247次,換算年度總資產週轉率為(乘以2):2.494次。
96年第三季資產負債表96年第三季損益表查入,可得期末資產總計:168232137,營業收入合計:311233016。如此算得96年第三季總資產週轉率為:1.896次,換算年度總資產週轉率為(乘以4/3):2.528次。
至於96年第四季資產負債表96年第四季損益表什麼時候會公佈,依據規定,四月底前必須公佈前一年度之年度報表。

不過,這裡的計算似乎有點小問題。按照定義上來說,應該分母是平均資產總額才對,也就是,應該是(期初資產總額+期末資產總額)/2。而所求出來的95年度的總資產週轉率為2.197次。但是,若我們直接查公開資訊觀測站,在常用報表頁籤中有個財務分析資料的項目,而依該項目查得的總資產週轉率卻為1.96次。很顯然,兩者間有差距。因此,我將分母部份改為當年之資產總計,而不去計算平均資產總計的話,結果就完全一樣了,也是1.96。故,應該也可以化繁為簡,只取當年度資產總計為分母來計算即可。

相關連結:經營效能分析

[+/-] 繼續閱讀...

2008年4月17日 星期四

速動比率 - 個股實例(2324)

速動比率(Quick Raio),其公式為:

速動比率 = 速動資產 / 流動負債 *100%
其中,速動資產,乃指現金、有價證券、應收票據、及應收帳款等各項可迅速變現,而用以支付流動負債的資產。

問題來了,在資產負債表中,可以找到現金、應收票據、及應收帳款,但找不到有價證券。是否直接忽略有價證券這一項呢?其實,速動資產也可以用下面公式表達:
速動資產(Quick Assets) = 流動資產(Current Assets) - 存貨(Inventories) - 預付費用(Prepaid Expenses)
但,同樣的,在資產負債表中找得到存貨,但找不到預付費用,那就只好將預付費用省去了。因此,這裡需要三項資訊,即流動資產存貨流動負債

公開資訊觀測站中,以2324查取資產負債表時,
95年第四季查入,可得流動資產:107775321,存貨:10840473,流動負債:83131470。如此算得速動比率為:116.6%

按照標準,比率在100%以上,代表短期變現能力不錯、有應付緊急償債的能力。

至於96年第四季報表,依據規定,四月底前必須公佈前一年度之年度報表。

相關連結:短期償債能力分析

[+/-] 繼續閱讀...

固定資產對長期資金比率 - 個股實例(2324)

固定資產對長期資金比率(Fix Assets To Long-term Funds Ratio),其公式為:

固定資產對長期資金比率 = 固定資產 / (長期負債 + 股東權益總額) *100%
其中,需要三項資訊,即固定資產長期負債股東權益總額

公開資訊觀測站中,以2324查取資產負債表時,
95年第四季查入,可得固定資產淨額:2401584,長期負債:0,股東權益總計:71233223。如此算得固定資產對長期資金比率為:3.37%

按照標準,比率在100%以下,並未達到警戒線。

至於96年第四季報表,依據規定,四月底前必須公佈前一年度之年度報表。

相關連結::財務結構分析

[+/-] 繼續閱讀...

資本總額比率 - 個股實例(2324)

資本總額比率(Capitalization Ratio),其公式為:

資本總額比率 = 長期負債 / (長期負債 + 股東權益總額) *100%
其中,需要兩項資訊,即長期負債股東權益總額

公開資訊觀測站中,以2324查取資產負債表時,
95年第四季查入,可得長期負債:0,股東權益總計:71233223。如此算得資本總額比率為:0%

按照標準,比率在35%以下,並未達到警戒線。

至於96年第四季報表,依據規定,四月底前必須公佈前一年度之年度報表。

相關連結:財務結構分析

[+/-] 繼續閱讀...

經營效能分析

企業籌措資金,購買各種營運資產,如固定資產、存貨等,經由生產、銷售等營業活動,產生各種營業收入;而收入再經過收款等營業活動,產生更多的營運資產,如應收帳款、應收票據、銀行存款、與現金等。而現金、銀行存款,可再用以購買存貨、固定資產,繼續生產、銷貨、收款等營業活動,循環不已。

因此,這種循環的期間愈短,表示企業運用各種營運資產的效率愈高,對企業也愈有利。而經營效能分析(Analysis of Operation Efficiency),最主要的就是使用資產週轉率來作為分析評估,其基本公式為:

資產週轉率(次) = 營業收入淨額 / 資產平均額

其中,資產可代表各種營運資產,而企業若僅有銷貨收入時,一般則以銷貨收入淨額代替營業收入淨額。常用的各項週轉率如下:

  1. 總資產週轉率
    總資產週轉率(次) = 銷貨淨額 / 平均資產總額
             = 銷貨淨額 / ((期初資產總額+期末資產總額)/2)
  2. 固定資產週轉率
    固定資產週轉率(次) = 銷貨淨額 / 平均固定資產
              = 銷貨淨額 / ((期初固定資產+期末固定資產)/2)
  3. 應收帳款週轉率
    應收帳款週轉率(次) = 銷貨淨額 / 平均應收帳款
              = 銷貨淨額 / ((期初應收帳款+期末應收帳款)/2)
  4. 存貨週轉率
    存貨週轉率(次) = 銷貨成本 / 平均存貨
            = 銷貨成本 / ((期初存貨+期末存貨)/2)
    存貨週轉天數 = 360 / 存貨週轉率

一般評估而言,資產週轉率的值愈大,表示資產週轉率的次數愈多,企業運用各種營運資產的效率愈高,對企業自然愈有利。但因各行各業性質不同,欲以資產週轉率來評估公司運用營運資產是否具有效率,或營業收入各項營運資產是否保持合理關係,必須與行業性質相同或類似的同業,或是公司過去年度資產週轉率作比較,才較有意義。

另,在評估公司獲利能力時所用的兩項重要指標:投資報酬率與純益率,其與資產週轉率間是互有關聯的:

總資產投資報酬率 =   稅後純益   /   總資產
         = (稅後純益/銷貨) * (銷貨/總資產)
         =    純益率   * 總資產週轉率

因此,一企業要追求利潤、提高投資報酬率,除可從提高純益率著手外,亦可從提高資產的利用率來提高投資報酬率。

相關連結:財務報表分析

[+/-] 繼續閱讀...

2008年4月15日 星期二

短期償債能力分析

短期償債能力分析(Analysis of Short-Term Repayment Ability),是針對被分析公司的現金與短期內可以變現的各種資產,以及短期內到期而必須償還的各種負債,進行評估。雖某某企業可能獲利能力不錯,但卻可能因不能償還到期的負債而導致週轉不靈,以致無法繼續經營。因此,短期償債能力分析,實是企業體質健全與否的重要指標。

以下為常用的比率:

  1. 流動比率(Current Ratio)
    流動比率 = 流動資產 / 流動負債 *100%
    流動比率越高,表示短期償債能力越高;流動比率越低,則短期償債能力越低
    流動資產中的某些項目在變現時可能有貶值之虞,因此推論出流動比率應超過200%方屬理想,但也不可一概而論。台灣企業與200%的理想相去甚遠,一般來說只有100%左右;而如低於100%以下,則表示短期償債能力過低,對債權人的權益,已缺乏保障。

    影響流動比率的主要因素,一般認為是營運周期、流動資產中的應收帳款數額、和存貨週轉速度

    少數不肖企業人士,可能利用會計原理,將各有關科目予以適當安排,使達到改善營運資金與流動比率的地位,以粉飾財務報表外觀,此即一般所謂的『窗飾』(Window dressing),因此必須小心。

    流動比率也被稱為『營運資金比率』(working capital ratio),甚至逕以『營運資金』代替流動比率使用。實際上,流動資產大於流動負債的餘額,才稱為『營運資金』。(參考:財務狀況變動表)

  2. 速動比率(Quick Raio),又稱為酸性測驗比率(Acid-Test Ratio):
    速動比率 = 速動資產 / 流動負債 *100%
    速動資產,乃指現金有價證券應收票據、及應收帳款等各項可迅速變現,而用以支付流動負債的資產。

    影響速動比率可信度的重要因素是應收帳款的變現能力

    速動比率可以表達企業是否有應付緊急償債的能力。理論上,速動比率應較流動比率標準要求較低,只要速動比率達100%以上便稱理想,如能達50%~100%間亦屬尚可,唯在50%以下者表示迅速償債能力甚低

  3. 應收帳款週轉率
    應收帳款平均收回天數

  4. 存貨週轉率
    存貨轉換期間

相關連結:財務報表分析

[+/-] 繼續閱讀...

2008年4月13日 星期日

資本負債比率 - 個股實例(2324)

資本負債比率(Debt-to-Equity Ratio),其公式為:

資本負債比率 = 負債總額 / 股東權益總額 *100%
其中,需要兩項資訊,即負債總額股東權益總額

我是財務報表分析之門外漢,以下,全是個人憑空思考路徑。將來,若有知識累積或觀念改變,將會回頭再來修正。觀看者若有正確觀念提供,尚請提出指教,謝謝!

公開資訊觀測站中,以2324查取資產負債表時,
95年第一季查入,可得負債總計:56988643,股東權益總計:68497821。如此算得資本負債比率為:83.2%
95年第二季查入,可得負債總計:59913319,股東權益總計:65103084。如此算得資本負債比率為:92.0%
95年第三季查入,可得負債總計:65120350,股東權益總計:67606346。如此算得資本負債比率為:96.3%
95年第四季查入,可得負債總計:83346982,股東權益總計:71233223。如此算得資本負債比率為:117.0%

再以簡明資產負債表(三年)查得之95年度資料比對,與前面所查之95年第四季完全相同
故,日後查尋此項分析之資料來源時,若是第四季資料已出,則可直接取之;否則,將只能由最後發表的那一季資料來預估。

按照標準,比率皆在200%以下,並未達到警戒線。

而由上面計算中可以看到,資本負債比率在逐季增加中。代表仁寶在95年這數季來一直在增加財務槓桿率中。
增加財務槓桿率,若經營得當,可創造出更多的收益;而若經營不當,則可能導致倒閉的命運。
但以低於200%的狀況來論,尚在安全警戒範圍內,資產結構尚屬正常。至於增加資本負債比率後,是否有回饋到營收或稅後盈餘上,那就得看其他分析項目了。

96年第一季查入,可得負債總計:79431213,股東權益總計:74611471。如此算得資本負債比率為:106.5%
96年第二季查入,可得負債總計:88306680,股東權益總計:71767418。如此算得資本負債比率為:123.0%
96年第三季查入,可得負債總計:92887116,股東權益總計:75345021。如此算得資本負債比率為:123.3%
至於96年第四季(這個連結目前尚無用處)報表什麼時候會公佈,依據規定,四月底前必須公佈前一年度之年度報表。

相關連結:財務結構分析

[+/-] 繼續閱讀...

2008年4月12日 星期六

在Blogger上置入FunP推推王按鈕

參考這兩篇:

http://skyvee.net/2007/05/blogger-funp.html
http://skyvee.net/2007/08/funp-push.html

以下為原文重點收錄:
I.首先 在 <head> </head> 之間, 加入這段程式碼.
<script language='JavaScript' src='http://bloggertips.googlecode.com/files/funp_button2.js'/>
II.以下三選一

如果要把推文按鈕加在文章標題列, 則在 <h3 class='post-title'> 後, 加入以下程式碼
<script>funp_genButton("<data:post.url/>");</script>

如果想放在文章左側, 則在<p><data:post.body/></p> 之前, 加入以下程式碼
<div style='float:left;margin-left:10px;'>
<script>funp_genButton("");</script>
</div>

如果是文章右側, 則在<p><data:post.body/></p> 之前, 加入以下程式碼
<div style='float:right;margin-right:10px;'>
<script>funp_genButton("<data:post.url/>");</script>
</div>

[+/-] 繼續閱讀...

拍出好照片前該具備的基本常識

  • 曝光
    1. 光圈:光圈是由一片片的葉片所組成,可以由拍攝者來調整它的開孔大小。開孔越大,進光量越大;開孔越小,進光量越小。而相機上的光圈數值是與開孔大小相反的,光圈數值越大代表光圈的開孔越小,曝光量則越少;光圈數值越小代表光圈開孔越大,曝光量則越多。另外,光圈也決定到景深長短。大光圈(小光圈數值)景深較淺,小光圈(大光圈數值)景深較長。高階相機具有光圈先決功能, 可由使用者決定光圈值,再由相機自動計算變化快門速度 。另,也可手動自由調整光圈值及快門速度。
    2. 快門:快門速度決定了快門幕簾打開的時間長短,也就是指曝光時間的長短,單位通常以秒計算。快門越快,曝光時間越短,曝光量越少;快門越慢,曝光時間越長,曝光量越多。一般原則,在光線充足的地方,快門速度應該較快,以避免曝光過度;反之,在光線不足的地方,快門速度就應較慢,以避免曝光不足。 高速快門在動態攝影中可以凍結畫面,而慢速快門則可表現出畫面動感。高階相機具有快門先決功能,可由使用者決定快門速度,再由相機自動計算變化光圈值 。另,也可手動自由調整快門速度及光圈值。
    3. ISO值:相當於傳統軟片的感光度。ISO值越大,感光度越高,但照片顆粒越大且雜訊也越多;ISO值越小,感光度越低,照片顆粒越細且雜訊也越少。 但,目前較高檔的相機都已設置有雜訊抑制功能,可以讓高ISO值下本應產生的雜訊降至最低。過去,在傳統相機上,底片決定ISO值,所以同一卷底片的ISO值都是相同的。而現在的數位時代就方便多了,每拍一張照片前,ISO值都可以任意調動,這樣,只要能在雜訊產生量最低的情況下(每台相機的雜訊抑制效果各自不同),就能在低光源的環境下自由調高ISO值來拍照了。
    4. 測光:測光系統是相機對物體光線明暗的判斷依據,進而調整相機的曝光時間而拍出曝光時間正常的照片。一般有平均測光、評價測光、點測光...等。 儘管因為科技進步而相機的測光技術已成熟,然,拍攝時的環境、光線,以及個人所要表達的意境都是多變的,所以,相機的測光建議只是個參考,不是完完全全可以依賴而不可改的。
    5. EV值:即所謂的曝光補償值,當EV值加的時候照片就會較亮,EV值減的時候照片就會較暗。拍攝時相機因光圈、快門等因素而決定好了應有曝光量,但,遇拍白色或較亮主體時會將其色彩變暗,此時若欲維持主體亮度,則需反向稍加EV值;而遇拍黑色或較暗主體時會將其色彩變亮,此時若欲維持主體暗部色彩,則需反向稍減EV值。
    6. 閃光燈:可以內建或外接,用在光線不足或刻意補光時。
    7. 減光鏡: 在光線非常充足的環境下拍照,快門速度勢必會非常的快,此時若欲拍攝流水的動感而欲將快門速度放慢,就必須借助減光鏡來降低單位時間進光量以放慢快門速度。減光鏡有多種,一般以ND8最常被使用,可以降低三檔的快門值。 另外,還有漸層減光鏡,可以適用於晨昏拍攝時降低天空與地面的高反差亮度。
  • 清晰度
    1. 對焦:即鎖定目標物的焦距,讓目標物清晰。 有自動對焦及手動對焦。一般來說,由於科技的進步,目前大部份數位相機的自動對焦功能都已不錯,但是,仍有一些場合可能會導致自動對焦功能失敗而造成失焦:
      • 反差低的環境:基本上,自動對焦的系統通常是利用環境中的反差,經過運算合焦後,來達成自動對焦的目的。而當拍攝環境反差較低時,就有可能發生對不到焦的情況。此時可以將對焦點移到同樣距離內反差比較大的物體上,完成對焦的動作後,記得要先鎖焦,然後將鏡頭移回要構圖的範圍中。一般相機的鎖焦,採用的是半按快門的方式,在半按快門不放的情況下將鏡頭移回拍攝範圍內而再直接拍攝。當然,也可以改用手動對焦解決。
      • 低亮度的環境:自動對焦在環境上有一定的亮度限制,在環境亮度不足之下,自動對焦會喪失它的功能。此時,若相機本身有設置對焦輔助燈,則對焦輔助燈會發揮功能來協助對焦。或者,可使用手電筒或其他外部光源先協助對焦,再在拍攝時關閉該外部光源。當然,也可以乾脆改用手動對焦解決。
      • 對焦點不在中央:跟反差低環境時的對焦一樣,可以先將焦點移至中央對焦,接著先鎖焦,然後再將鏡頭移回正確拍攝位置拍攝。同樣的,也可以改用手動對焦解決。
      • 被攝體處於連續移動的狀態:當被攝體處於連續移動狀態時,在對焦後按下快門之時,該被攝體已經離開了原有拍攝位置,因而造成失焦。此時可啟動相機提供之連續對焦功能,對焦成功的機率就會提高些。當然,如果能夠練就一手手動對焦的精準技能,那就再好不過了。
    2. 手振:可用腳架或開啟相機、鏡頭的防手振功能避免。 一般來說,快門速度要提高到某一個值,拍出來的畫面才不會因手振而晃動。這樣的最低快門速度,稱為安全快門。安全快門有個簡單的計算方式:1/使用的鏡頭焦距=安全快門。譬如使用50mm鏡頭拍攝,那麼,安全快門就是1/50,大約是1/60秒的快門;而又譬如使用200mm鏡頭拍攝,那麼,安全快門就是1/200,大約是1/250秒的快門。
  • 色彩
    1. 白平衡:在不同光源下,因為光線色溫的關係,白色物體反射出來的顏色會跟光線的色溫一樣,但是人類眼睛跟大腦會自動修正判斷,告訴我們這個物體是白色的,然而相機就沒那麼聰明,而會在不同顏色的光線下產生色彩的偏差,所以必須靠白平衡系統設定來重新校正不同光源下的色彩。一般相機都有自動白平衡或模式白平衡,高階點的相機則有手動白平衡。 使用閃光燈時也會改變色溫,所以也應同時調整白平衡,很多相機都設置有閃燈白平衡設定。
    2. 特殊光源:如棚燈,一般使用者較少接觸到。
    3. 色彩濾鏡:有各種色系的濾鏡可以選擇,但是,在數位時代,大多的色彩濾鏡功能都己可被修圖軟體所取代。
    4. 偏光鏡: 主要用於避掉不當的光線折射,並有純化拍攝物顏色的效果。當對著街頭櫥窗玻璃拍攝時、或是對著具有陽光照射的水面拍攝時,偏光鏡可以去除不必要的光線反射而讓拍攝者較為清晰的拍攝到櫥窗裡或水裡的景物。另外,在風景攝影部份偏光鏡也可以讓天空顯得更藍。
  • 構圖:指對畫面的安排,有制式的構圖原則,也可自由依個人創意發揮。
  • 儲存媒體:傳統相機是以底片來記錄影像,而數位相機則是使用記憶卡。記憶卡種類繁多,以CF、SD卡較為通用,而近來SDHC卡也漸受青睞。容量越大的記憶卡,與電腦作檔案傳輸時的時間就越久,此時,選用支援USB 2.0的記憶卡會比只支援USB 1.0的記憶卡來得方便快速。而SDHC則是記憶卡的容量突破了SD記憶卡原有的最高2G限制,對於目前畫素越來越高的新型相機來說,可以提供更大更便利的儲存空間,而其本身在相機中的讀寫速度也有大幅改善,適用於提供有高速讀寫功能的數位相機機種。SDHC卡本身的資料傳輸速度,SD協會對於資料傳輸速率制定了SD Speed Class(SD傳輸速率級別)。其代表意義為:
    1. CLASS 2 儲存最低速率大於2MB/sec
    2. CLASS 4 儲存最低速率大於4MB/sec
    3. CLASS 6 儲存最低速率大於6MB/sec

    SD協會並且要求記憶卡製造商必須在SDHC外觀清楚標示SD Speed Class等級。

[+/-] 繼續閱讀...

你知道相機上的光圈值怎麼來的嗎?

有玩相機的人,大多都會知道,相機的光圈值,常見的有:
 F1.4 / F2 / F2.8 / F4 / F5.6 / F8 / F11 / F16 / F22 / F32
這些光圈數值幾乎是被學攝影者所直接背下來的,但是,很少人知道它們之間真正的關係。

當然,稍微懂的人都知道,每組鄰近一個光圈值之間,都有一格(或一級)的進光量差異。
即,每差一格,在固定時間內的進光量就差一倍。
光圈數值越小,代表光圈開得越大,進光量也就比下一格多一倍。
那麼,這些數字間究竟是什麼關係,為什麼數值越小光圈開越大,又為什麼進光量會每一格差一倍呢?

原來,這些數值的計算法,是由下面公式得出來的:

光圈值(F Number) = 鏡頭焦距(mm) / 光圈口徑(mm)

所以,我們若以標準鏡頭焦距50mm當標準來計算,
這樣,當光圈口徑也等於50mm時,光圈值就等於F1了。
那麼,下一個一半進光量的光圈值該是多少呢?
很簡單,會數學或會程式的人一定知道,就是用面積比例下去算了:
 1. 半徑:50 / 2=25
 2. 面積:25^2 * 3.14159...
 3. 面積一半:25^2 * 3.14159... / 2
 4. 還原回一半面積的半徑值:sqr(25^2 * 3.14159... / 2 / 3.14159...) = sqr(25^2 / 2)
 5. 再轉成直徑:sqr(25^2 /2) *2 = sqr(50^2 / 8) *2 = sqr(50^2 /2)
好啦,所以,下一個一半進光量的光圈口徑就是sqr(50^2 / 2)了,
那麼,其光圈值就是:50 / sqr(50^2 / 2)

我們用VB6簡單寫個程式,把所有一系列的光圈值列出來:


Private Sub Command1_Click()
  a = 50: b = 50
  Debug.Print "光圈口徑(mm)", "光圈值(F)"
  For i = 1 To 11
    Debug.Print Format(b, "#0.00"), Format(a / b, "#0.00")
    b = Sqr(b ^ 2 / 2)
  Next
End Sub

這樣,得到的答案是:

光圈口徑(mm) 光圈值(F)
50.00    1.00
35.36    1.41
25.00    2.00
17.68    2.83
12.50    4.00
8.84     5.66
6.25     8.00
4.42     11.31
3.13     16.00
2.21     22.63
1.56     32.00

當然,光圈值的標示只是個大略值,方便攝影者記憶而已!
將上面答案的小數第二位或連同小數第一位去掉,是不是就跟最上面提到的那排光圈值一樣了!

以後,再看到這些光圈值時,心中疑惑應該就會降到最低了吧!

[+/-] 繼續閱讀...

攝影專有名詞解釋與翻譯

攝影家手扎中的文章:

攝影專有名詞解釋與翻譯,大部份有關攝影的英文專有名詞都可以在這裡找到。

由於尊重著作權,我就不直接轉載貼過來了,請由上面連結點進入查看。
底下只列出其項目列表:

Aberration︰像差
AE︰自動曝光(Automatic Exposure)
AF-I Nikon lens
AF-S超音波馬達鏡頭
Ais Nikon lens(AIS 是 Automatic Indexing Shutter 的縮寫)
Aperture︰光圈
Aperture priority︰光圈先決
Aperture ratio︰口徑比
APO鏡頭
ASA︰美國標準協定(American Standards Association)
Aspherical lens︰非球面鏡
B快門
BASIS自動對焦系(Base-Stored Image Sensor的縮寫)
Bracketing︰包圍曝光
CCD (Charge-Coupled Device 電荷耦合元件)
CCI (Color Contribution Index)

Centerweighted averaging metering︰中央重點式測光
CMOS感光元件(Complementary metal oxide semiconductor 互補金屬氧化半導體 sensor)
Coating︰鍍膜
C-PL︰圓形偏光鏡
Curvature of field︰像面彎曲
Depth of field︰景深
Depth of field preview︰景深預觀
Distortion︰歪曲像差
DX-Coding
EOS(Electronic Optical System)
E-TTL(Evaluative Through-The-Lens)
EV︰曝光值(Exposure Value)
Extension tube︰近攝用延伸管
Eye controlled focus︰眼控對焦
Flare︰光斑
Floating system︰浮動對焦系統
Fluorite︰螢石
FP flash︰高速閃燈
Focal length︰焦距
Focus︰焦點
Focus preset︰對焦預設
Full-time MF︰全時手動對焦
Ghost image︰鬼影
GN︰閃燈指數(Guide number)
HSM超音波馬達(Hypersonic Motor)
Hyperfocal distance︰超焦距離
ISO︰感光度(International Standards Organization國際標準協定)
Image stabilizer︰防手振機構
Inner focus︰內對焦
Mirror lock-up︰反光鏡鎖起
Modeling light︰造型閃光
MTF(Modulation transfer function)
Multi-exposure︰多重曝光
Multi-zone evaluative metering︰多區域評價測光
PC lens(Perspective Control,即「移軸鏡頭」)
Range-finder︰測距連動相機
Rear focus︰後組對焦
Rear-Curtain Sync︰後簾同步
Reciprocity law failure︰相反則不軌
RGB測光
RMS粒子性(Root mean square)
Shutter priority︰快門先決
Slide film︰正片
SLR︰單鏡反光機(Single Lens Reflex)
TTL(Through the lens)
UD glass(Ultra-low Dispersion超低色散)
USM︰超音波馬達(Ultrasonic motor)
Vignetting︰周邊暗角
X-sync︰閃光同步速度
Zone system︰分區曝光法
透視度
色相與飽和度
1. HSB模式
色相(Hue):是指「物體所反射(或穿透)進入人眼的的光波波長。」這就是我們平常所見到的顏色,像是
飽和度(Saturation):是指「色彩(color)所呈現的強度或純度」。飽和度顯示的是「色相中所含的灰
亮度(Brightness):指色彩(color)的明暗(lightness and darkness)程度。通常以0%表示全黑2. RGB三原色模式
3. CMYK模式
4. CIE L*a*b模式
5. 全色階模式
色溫
增感與增感攝影

[+/-] 繼續閱讀...

財務結構分析

財務結構分析(Analysis of financial structure),又稱資本結構分析(Analysis of capital structure),就是診斷企業體質健全與否的根據,故為評估企業長期償債能力(Long-Term Repayment Ability)與長期安全性的一項重要指標。

一般,分析時常用的比率有以下幾種:

  1. 股東權益比率
    股東權益比率 = 股東權益總額 / 資產總額 *100%
           = 股東權益總額 / (股東權益總額 + 負債總額) *100%
    顯示企業總資本中,屬於企業自有資本所佔的比率,反應企業的基本財務結構是否穩定。
    一般來說,比率高低報酬、低風險的財務結構;比率低高報酬、高風險的財務結構。

  2. 資產負債比率(Debt Ratio)
    資產負債比率 = 負債總額 / 資產總額 *100%
           = 負債總額 / (股東權益總額 + 負債總額) *100%
    可衡量企業的總資本中,究竟有多少百分比是仰賴外來資金提供。
    負債比率與股東權益比率,可說是一體兩面,兩者總和恰好是100%。
    一般而言,負債比率以不超過50%為理想,不過,這沒有絕對的標準。

  3. 資本負債比率(*)(Debt to Equity Ratio)
    資本負債比率 = 負債總額 / 股東權益總額 *100%
    此項比率,比資產負債率更能準確地揭示企業的長期債償能力狀況,因為公司只能通過增加資本的途徑來降低負債率。
    資本負債比率為200%時為一般的警戒線,若超過則應該格外關注

  4. 資本總額比率(*)(Capitalization Ratio)
    資本總額比率 = 長期負債 / (長期負債 + 股東權益總額) *100%
    企業資本總額,指的是企業永久或長期的資本,即為長期負債及股東權益總額的加總。資本總額比率,是被公認為負債比率分析中最具有意義者之一。一般來說,並沒有一定的標準根據,大多用於各企業在不同會計時期間的比較、或企業與企業間的比較。比率越低,相對長期負債的包袱就越小,對企業體質來說就越健康。以平均來說,35%為合理可接受之比率上限

  5. 長期負債比率
    長期負債比率 = 長期負債 / 資產總額 *100%
           = 長期負債 / (負債總額 + 股東權益總額) *100%
    長期負債,不會增加到企業的短期償債壓力,但是它屬於資產結構性問題,在經濟衰退時會給企業帶來額外風險

  6. 有息負債比率
    有息負債比率 = (短期借款 + 一年內到期的長期負債 + 長期借款 + 應付債券 + 長期應付款) / 股東權益總額 *100%
    無息負債與有息負債對利潤的影響是完全不同的,前者不直接減少利潤,後者可以通過財務費用減少利潤。因此,公司在降低負債率方面,應當重點減少有息負債,而不是無息負債,這對於利潤增長或轉虧為盈具有重大意義。在揭示公司償債能力方面,100%是國際公認的有息負債對資本的比率的資本安全警戒線

  7. 流動負債佔總負債比率
    流動負債佔總負債比率 = 流動負債 / 負債總額 *100%
    流動負債為企業對外負債中須於短期內償還的債務。
    此項比率過大,將影響資金流動的安全性

  8. 固定資產對股東權益比率
    固定資產對股東權益的比率 = 固定資產 / 股東權益總額 *100%
    固定資產為生產事業的根本,應以自有資金投資為原則,否則將仰賴負債為之。
    就長遠眼光來說,最安定的資金是企業的自有資本(即股東權益總額),固定資產最好是以這種安定的自有資本來籌措。
    因此,固定資產對股東權益的比率,應以不超過100%為理想

  9. 固定資產對長期資金比率(*)
    固定資產對長期資金比率 = 固定資產 / (長期負債 + 股東權益總額) *100%
    當企業要大幅度擴展時,購置固定資產往往非自有資本所能負荷,不足部份即需仰賴負債。
    而長期負債,亦屬較安全的長期資金來源。故,以『固定資產對長期資金比率』來衡量長期資金的安全性,應較『固定資產對股東權益比率』為合理。
    此項比率,一般以不超過100%為理想標準

  10. 利息保障倍數(*)(Interest Protection Multiples),又稱利息保障率(Debt Service Coverage Ratio):
    利息保障倍數 = 所得稅及利息費用前純益 / 銀行利息費用支出
           = (繼續營業單位稅前淨利(淨損) + 利息費用)/ 利息費用
    利息保障倍數是企業中期營運的財務指標,一家公司向銀行借錢做生意,所賺來的純益是否足夠支付銀行利息,公司雖然短期速動比率及流動比率符合標準,但若是負債重,獲利不足以支付利息,中、長期將走向虧損滅亡的命運。
    比值越高越好,至少要大於1

相關連結:財務報表分析

[+/-] 繼續閱讀...

在Blogger中處理程式碼區塊

第一種方法,是在程式碼資料區塊外加框,並且加入底圖(我這裡故意沒加底圖)。
這個方法的參考網址是:http://skyvee.net/2007/07/code.html
底下為原文收錄:

記得改程式碼前, 要先備分template哦!



1. 請先下載此圖檔, 然後上傳到一個網頁空間... 記錄此圖片網址.(請記得下載, 最好把圖片另存, 萬一skyvee以後不小心砍掉可就麻煩囉!^^")



2. 將以下程式碼, 貼到 <head> </head>之間的CSS區塊,如 <b:skin><![CDATA[
的後面. 其中紅字部分, 要改成另外存的圖片網址哦!



code {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 9pt;
overflow:auto;
background: #fff5ee url(圖片網址並注意大小寫要正確) left top repeat-y;
border: 1px solid #ccc;
padding: 5px 5px 5px 20px;
max-height:200px;
line-height: 1.2em;
margin: 5px 0 0 15px;
}



3. 以上步驟完成後, 只要在文章中, 想把有 程式碼 的那一段區域, 用特別的圖示標出, 就可以用 <code> </code> 包住那段程式碼囉!



效果就會像這篇文章中出現的程式碼一樣



第二個方法,可用於框示各種類程式碼,並有提供複製及列印功能。
這個方法的參考網址是:http://yehhou.blogspot.com/2007/06/blogger-dpsyntaxhighlighter.html
原始提供網址是: http://code.google.com/p/syntaxhighlighter/(其Downloads頁面有原始檔可供免費下載)
這部份內容較多,請自行至該二處網址參考使用。

[+/-] 繼續閱讀...

2008年4月11日 星期五

擴展Blogger版面寬度

在剛建立好Blogger時,會發現顯示頁面不夠寬,預設顯示頁面只有660的寬度而已(根據所選原始模版不同,各別可能的預設值也會不同)。如果想要加寬頁面顯示寬度的話,就得動手改一改了。

  1. 按下Blogger的『版面配置』頁籤
  2. 再按下其下的『修改HTML』頁籤
  3. 若對HTML語言及CSS語法沒有把握,可以按下『下載完整模版』,先將現有模版儲存在自己電腦中,以便將來處理錯誤要復原時使用。
    要復原模版,可以在『從硬碟的檔案裡上載模版』右方文字格中輸入自己電腦中的完整模版儲存路徑,或按右方『瀏覽...』鈕進入挑選。最後,再按『上載』鈕即可。
  4. 展開小裝置範本』 核取盒,現在用不著,故,可以暫不理它。
  5. 在下方HTML碼中,找到下面段落,並將紅色字處改掉(以下內容,可能會因原始所選模版不同,而有所差異,找到大致類似位置修改之即可)。

    下面者,原預設是660,視所需顯示頁面大小將之更改:

    /* Header
    -----------------------------------------------
    */

    #header-wrapper {
    width:1000px;
    margin:0 auto 10px;
    border:1px solid $bordercolor;
    }

    下面者,預設為700,此處可不改。
    #header .description {
    margin:0 5px 5px;
    padding:0 20px 15px;
    max-width:1040px;
    text-transform:uppercase;
    letter-spacing:.2em;
    line-height: 1.4em;
    font: $descriptionfont;
    color: $descriptioncolor;
    }

    下面者,預設為660
    /* Outer-Wrapper
    ----------------------------------------------- */
    #outer-wrapper {
    width: 1000px;
    margin:0 auto;
    padding:10px;
    text-align:$startSide;
    font: $bodyfont;
    }

    下面為文章內容的寬度設定,預設為410
    #main-wrapper {
    width: 750px;
    float: $startSide;
    word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
    overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
    }
    當然,你也可以改Sidebar的寬度,預設為220。我沒改,要改的話,要注意與上方main-wrapper者之加總,不可超過Outer-Wrapper之寬度設定。
    #sidebar-wrapper {
    width: 220px;
    float: $endSide;
    word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
    overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
    }
  6. 改完後,按下下方的『儲存範本』鈕即可。
  7. 按下『檢視Blog』連結,即可發現顯示頁面加寬了。

[+/-] 繼續閱讀...

在Blogger中上載圖片或影片

在Blogger中,要上載圖片或影片,只要在編寫張貼文章時處理即可。


  • 插入圖片
    1. 在建立編寫文章的工具列上按下『插入圖片(Add Image)』按鈕
    2. 可選擇自電腦或網頁中來新增圖片
    3. 並可直接設定圖片與文字間的版面配置
    4. 記得要勾選『我接受服務條款』項目
    5. 按下『上載圖片』按鈕
    6. 上載完畢後,上載圖片便會被貼入編寫文章中,再自行調整位置或修改HTML碼即可
  • 插入影片
    做法與插入圖片類似,但只提供從電腦中來新增影片

[+/-] 繼續閱讀...

在blogger首頁只顯示文章摘要, 隱藏全文的做法

本部落格這項功能的做法,參考自:
http://skyvee.net/2007/06/blogger-hide-fullpost.html

亦可參考這篇:http://chenkaie.blogspot.com/2006/11/blog-expandable-posts-with-peekaboo_2149.html

請自行進入該網頁閱讀

[+/-] 繼續閱讀...

2008年4月10日 星期四

財務報表分析

財務報表分析(Financial Statement Analysis)的主要方向有:

  1. 單個年度的財務比率分析
  2. 不同時期的比較分析
  3. 與同業其他公司的比較

可分為數個層面來分析:

  1. 財務結構分析(Analysis of financial structure) 或 長期償債能力分析(Analysis of Long-Term Repayment Ability)
  2. 短期償債能力分析(Analysis of Short-Term Repayment Ability)
  3. 經營效率分析(Analysis of Operation Efficiency)
  4. 獲利能力分析(Analysis of the Ability to Benefit)
  5. 現金流量分析(Cash-Flow Analysis)

相關連結:財務報表種類

[+/-] 繼續閱讀...

2008年4月7日 星期一

現金流量表

現金流量表,是記錄企業在某一會計期間中之現金流入及流出狀況,彙總說明企業在營業、投資及融資等三大項活動對現金流量產生之影響。

現金流量表可用來評估企業之下列項目:

  1. 未來產生淨現金流入的能力
  2. 償還負債及支付股利的能力,及其向外融資之需求
  3. 會計損益及來自營業活動所產生之現金流量間差異之原因
  4. 本期現金及非現金的投資及融資活動對財務狀況之影響

現金流量可分為下列類別:

  1. 營業活動之現金流量:來自營業活動現金流量越高,代表公司由本業營運活動創造現金的能力越強。
  2. 投資活動之現金流量:投資活動現金流量負數越高,代表公司的資本支出越高、投資企圖越積極。
  3. 融資活動之現金流量:融資活動現金流量正數越高,代表公司可能對外舉債或借款,或者向原來股東募資。
  4. 其他現金流量

相關連結:財務報表種類

[+/-] 繼續閱讀...

財務狀況變動表

財務狀況變動表,可表達企業在某特定會計期間的投資與理財活動,如何影響資金的變動。基本公式是:

資金之來源 – 資金之運用 = 資金本期變動增(減)數

此處所指的資金,與資產負債表所指的資金含義不相同。此處的資金是指狹義的『現金』或『營運資金』而言。資產負債表所指的資金,則指廣義的自有資金與外來資金而言。

營運資金 = 流動資產 - 流動負債

由營業產生(或耗用)之營運資金 = 本期稅後淨利(損)
              +- 不動用營運資金的費用(收益)
              +- 非常損失(利益)
              +- 非營業交易損失(利益)

營運資金之主要來源及運用可彙總如下:

  • 營運資金之來源:
    1. 由營業產生者
    2. 處分非流動資產
    3. 舉借長期負債
    4. 發行權益證券
  • 營運資金之運用:
    1. 用於營業者
    2. 購置非流動資產
    3. 償還長期負債
    4. 收回權益證券
    5. 宣佈現金股利
    6. 轉列流動負債項下之長期負債
現金之主要來源及運用可彙總如下:

  • 現金之來源:
    1. 由營業產生者
    2. 與營業無關之流動資產的減少或流動負債的增加
    3. 處分非流動資產
    4. 舉借長期負債
    5. 發行權益證券
  • 現金之運用:
    1. 用於營業者
    2. 與營業無關之流動資產的增加或流動負債的減少
    3. 購置非流動資產
    4. 償還長期負債
    5. 收回權益證券
    6. 發放現金股利

相關連結:財務報表種類

[+/-] 繼續閱讀...

股東權益變動表

經由此表,能掌握某段會計期間,有關股東權益變動的訊息。此類變動包括:

  1. 企業的股本有否增資或減資?增資是以何種方式為之(現金、盈餘轉、或資本公積轉)?
  2. 資本公積方面的變動。
  3. 法定盈餘公積與特別盈餘公積方面的變動。
  4. 期初未分配盈餘(或累積虧損)。
  5. 本期未分配盈餘分配情形,包括分配董監事酬勞、員工紅利、現金股利、股票股利情形。
  6. 本期稅後淨利(損)轉列未分配盈餘的金額。

相關連結:財務報表種類

[+/-] 繼續閱讀...

2008年4月6日 星期日

損益表

可分為以下細目:

  1. 營業收入(operating revenue):為企業成長的指標,每月十日以前呈報上月營收
  2. 營業成本(operating cost):營業收入減除營業成本即為營業毛利
  3. 營業費用(operating expense):包括推銷費用、管理及總務費用等
  4. 營業外收入(non-operating revenue):利息收入、投資收益、處分固定資產收入、兌換收益、房租收入、股息收入、佣金收入等
  5. 營業外支出(non-operating expenditure):利息支出、投資損失、處分固定資產損失、兌換損失等
  6. 經常營業稅前或稅後淨利或淨損
    1.營業收入 – 營業成本 = 營業毛利(損)(gross operating income(loss))
    2.營業毛利(損) – 營業費用 = 營業利益(損失)
    3.營業利益(損失) + 營業外收入 – 營業外支出 = 經常營業稅前淨利(淨損)
    4.經常營業稅前淨利(淨損) – 所得稅費用 = 經常營業稅後淨利(淨損)
  7. 非常損益(稅後淨額):指性質特殊且不經常發生的損益,如災害損失等
  8. 會計原則變更累積影響數(稅後淨額)
  9. 本期稅後純益(淨利)(net income(loss)):經常 + 非常 + 會計變更
  10. 普通股每股盈餘(EPS,earnings per share) = 本年度稅後純益 / 本年度流通在外的普通股的加權平均數

相關連結: 財務報表種類

[+/-] 繼續閱讀...