2017年省電燈泡購買指南, 試用樞紐分析表的結果

http://wp.me/ph3BR-1YE

公布省電燈泡壽命及光束維持率檢測結果

http://www.ey.gov.tw/News_Content.aspx?n=49559B255B3B9F27&s=D22243E5A388AC80

106-03-31

2017-MAR-31

看過新聞, 也整理了一下公佈的資料, 其實看到就是霧裡看花, 完全沒清楚到底它在說啥. 這裡只是實驗性質, 嘗試運用 PIVOT TABLE 之類的分析工具, 看看這些資料.

引用消保處和行政院有公告統計及測試的數字, 不妨用自己的方法解讀一下裡面的內容, 雖然不會常買省電燈泡, 引用人家做好的統計數字, 用自行分析的方法, 看看這堆數字和文字到底表達了更深層的意義在哪裡. 分析過後, 得到了一些比較有趣資訊, 如果不是作者筆誤, 大概就是真有其事.

首先, 之前看完了新聞, 也看過行政院網站, 坊間的一般的新聞報導就類似, 壽命 亮度不足 26款省電燈泡 騙人…..等等, 對呀, 騙人的就不買. 而俺希望看的是另外一端, 若標示符合的燈泡, 賣價或排列有怎樣呢? 於是就下載了這個統計表格,

「省電燈泡」(第二階段)市場購樣檢測結果彙整表.pdf

http://www.ey.gov.tw/DL.ashx?s=A7BCF6DE0B0FB21B6BC913A7D6029EA50D4ED73A454E6065794330EF72007EA98DEA583F0FB58AD2AA744DC758E2FE8AFF2594ABDCC03F7A7DE5B564BD3DCFE26B7A397D9702296D&u=%2fUpload%2fRelFile%2f1513%2f748793%2f1710f1b6-39a3-4364-8406-cf93429d06b2.pdf

老師常說, 記錄資料不難, 花時間和精神就做到, 但是得到一堆數據以後, 要從裡面找到想看的內幕, 不是每個人都有的功力, 就像葵花寶典, 沒練過就莽談開天闢土, 基本就廢話. 有了人家統計的資料表格, 例如上面提到的那個 PDF 檔案公告公開給下載的, 那就先來努力給他變成一個試算表格式, 有電腦和工具, 半分鐘就完成. 相信原作者也是利用類似的試算表工具來做資料輸入, 最後打印成PDF檔案, 現在要做的就是把它倒轉回去, 不然自己手工輸入一次嗎, 別傻了.

有了試算表的資料, 最簡單不是靠你的眼睛去分析數據, 而是用類似 PIVOT TABLE 的工具幫助分析, 如果不知道甚麼是 PIVOT TABLE, 那聽過 EXCEL [樞紐分析表], 其實就是類似的工具, 它可是協助你成為武林高手的工具之一, 但到底還只是工具, 要依靠運用得宜, 才會有功效.

有了資料, 有了工具, 還是不行, 需先訂下目標, 如果亂鳥投林, 到底要看甚麼都不知道, 那不要繼續. 目標很清晰, 既然人家都做說明了, 其中有部分樣品測試結果不合格壽命達不到2000小時, 那沒必要死盯一盤豆豉找蒼蠅 (拜託, 豆豉, 不要寫成豆鼓好不好), 試試看白麵粉裡找幾顆黑芝麻不是比較容易嗎! 設定目標, 看看合格產品中, 價格品牌型號排列, 如何 !?

所以呀, 就用那個樞紐分析表的結果, 挑選全部項目合格的, 再自動排列一下價格, 就看到期望的統計結果了, 很簡單呀.

看到兩個比較特殊的地方, 其中一點, 兩個不同廠牌的燈泡, 居然用到HLX-23WLT3完全相同型號. 這個沒法解釋. 另外一個, 最底下幾欄 B&Q 的產品單價是0元, 這個容易解釋, 單價的原始資料不是純粹的數字 (例如 129/組), 自動分析抓不到純粹數字, 就給他顯示0元, 自行修訂一下單價就能再作自動分析, 這裡留作家課作業, 喜歡做的就自己試試看. 如果想看標示放光時數和價格的關係, 可能還要自行細分品質結果才可以作自動分析, 不然用眼睛看, 還是霧裡看花.

「省電燈泡」(第二階段)市場購樣檢測結果彙整表-price-list

這裡只是實驗性質, 嘗試運用 PIVOT TABLE 之類的分析工具作功課.

「省電燈泡」(第二階段)市場購樣檢測結果彙整表 樞紐分析表.xls

「省電燈泡」(第二階段)市場購樣檢測結果彙整表.pdf

以上可下載, 打開樞紐分析表不需要密碼, 改動樞紐分析表的話需要密碼.

所有統計資料的來源和統計資料版權屬於行政院, 此處純粹引用做為課業的題材.

-end

 

REF:

http://www.bsmi.gov.tw/wSite/ct?xItem=68968&ctNode=1510

廣告

EXCEL, How to converts Excel file to XML file

http://wp.me/ph3BR-1ju

 

 

How to convert Excel data to XML file_Page_01How to convert Excel data to XML file_Page_10

test_xml.xlsx

 

Name Age Job Phone
Peter 10 N/A 1234
王一 20 worker 5678
王二 30 OL 1111

 

Note : PC is BIG5 win7, office 2007, excel 2007, make sure the schema is BIG5 encoding, or import source will reports error

my.xml, schema file


<?xml version="1.0" encoding="BIG5" standalone="yes"?>
<test_xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<record>
<Name>Peter</Name>
<Age>10</Age>
<Job>N/A</Job>
<Phone>1234</Phone>
</record>
<record>
<Name>王一</Name>
<Age>20</Age>
<Job>Worker</Job>
<Phone>5678</Phone>
</record>
</test_xml>

EXCEL 2003 寫好的 VBA, 用在 2007 都正常, 直到 excel 2010 就不能執行

http://wp.me/ph3BR-RX

原來是 XP + office 2003  年代時寫好的小工具, 一直都是很順暢的在用.

但是最近有小妹挑了一台小電腦出差用, 發現了一個問題, XP + 內建 office 2010, 執行同樣的 VBA 就報錯

excel2010 error

請教過人家,

http://social.msdn.microsoft.com/Forums/zh-TW/805/thread/edd581aa-3089-46f8-afa0-ee9bce660580

最後確認, 原來這個錯誤是因為,

遺漏: Microsoft Calender Control 2007

取消打鉤, 移除因為沒有用到, 也不存在.

為什麼會自動出現的呢, 翻查 EXCEL 2003 的那個存檔, 裡面也沒用過, 到底如何來的 ?

excel2010 error and why

.
.
報錯之一
'Excel 2003/2007/2010 可以正確運行
    MsgBox ("你所輸入的資料格式都檢查通過, 已填入 Sheet1" + vbCrLf + _
            "不過資料的準確性需要自行判定" + vbCrLf + _
            "可以開印標籤或發EMAIL")

    'Excel 2003/2007 可以, 但是 Excel 2010 不可運行
    'MsgBox ("你所輸入的資料格式都檢查通過, 已經填入 Sheet1" + Chr(13) + _
    '        "不過資料的準確性需要自行判定" + Chr(13) + _
    '        "可以開印標籤或發EMAIL")

 

 

.

.

報錯之二
Private Sub CommandButton載入樣版_Click()

Dim Answer As Boolean   '原來沒有這句, 沒有明確定義, excel2003/2007 可執行, excel 2010 則無法運行

    Answer = MsgBox("所有已經填寫的資料會被取代." + vbCr + _
                    "僅作為觀察用. 如果要填寫資料, 建議首先 [清除所有資料] !!" + vbCr + vbCr + _
                    "你要繼續載入嗎 ?" + vbCr _
                    , vbQuestion + vbYesNo _
                    , "注意!!")

    If Answer = vbNo Then Exit Sub

    Answer = MsgBox("看來你還是需要繼續載入樣板. 記得, 觀察完畢, 務必首先 [清除所有資料] !! 要載入樣板嗎 ?", vbCritical + vbQuestion + vbYesNo, "注意!!")

    If Answer = vbNo Then Exit Sub

    Call pre_set_template

End Sub

.

.

.

再來這個就還沒有頭緒, Trim 和 UCase, 要處理的資料從使用者輸入的字串, 全變大寫, 去掉首位多餘的 [ 空白], 然後存起來

報錯是, [ 找不到專案或程式庫 ]

補充, TextBoxSR, 是一個在 USERFORM 上 TextBox, 名稱改成 TextBoxSR, 方便閱讀而已, 其內容是使用者輸入的資料

string_buffer = Trim(UCase(TextBoxSR))
    TextBoxSR = string_buffer

.

.

.

解決方案

'Excel 2003/2007/2010 可以正確運行
MsgBox ("你所輸入的資料格式都檢查通過, 已經填入 Sheet1" + vbCrLf + _
"不過資料的準確性需要自行判定" + vbCrLf + _
"可以開印標籤或發EMAIL")

'Excel 2003/2007 可以, 但是 Excel 2010 不可運行
'成因, Microsoft VBA 設定引用項目 Calender Control 2007 不存在她的 XP 2010
'錯誤, 找不到項目
'除此以外還有其他莫名其妙的錯誤
'2013-05-16, 回來遇到她的電腦, 確認, 移除以上說明的那個引用項目, 全部問題解決
MsgBox ("你所輸入的資料格式都檢查通過, 已經填入 Sheet1" + Chr(13) + _
"不過資料的準確性需要自行判定" + Chr(13) + _
"可以開印標籤或發EMAIL")

EXCEL VBA – Trim string with specific delimiter 截去特分隔符號後面的字串

http://wp.me/ph3BR-Q7

 

data

item
AN-BA044.5-0.8-9415-7V
AN-BA9090-9.7-0821-51V
AN-BA9191-9.4-0820-51
AN-BA9595-9.6-0798-51V
AN-AFN0505-9.2-9415-7-R.9
AN-AFN0707-9.6-9026-51
ANH-BA9797-9.5-0695-51
ANH-BA9999-9.8-0694-51
ANH-BA2929-2.1-0592-51-R.A
ANH-BA2727-2.0-0490-51-R.4
ANH-BA2929-2.0-0409-51
ANH-BA1515-9.5-0108-51
ANX-BA17.517.5-2.0-0107-51V

AND-2020-9.4-0592-99-R.A
AN-2020-9.0-0592-99

.

.

before trim

nEO_IMG_before trim

after trim, result

nEO_IMG_after trim

.
.

VBA source code


Sub 整理資料()
'''''''''''' 2013-03-26, xiaolaba
''''''''''''

'先查有資料的範圍, 得到最大的行,列號, 計算有多少格資料要處理
最大的列號x = Cells.Find(what:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
最大的行號y = Cells.Find(what:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row

X = 1 ' X & Y 指標指向第一列的第一格
Y = 1

'    Do While X <= 最大的列號x
Y = 2                                   '設定指向第一格
Do While Y <= 最大的行號y
Cells(Y, X).Select

'''ActiveCell = 除去字串中連續兩個的空格(ActiveCell)

'原字串存在 ActiveCell , 分隔號 "-", 第4個位置
'左側資料結果存到右側的 CELL
'右側資料結果存到右側的 CELL + 1
ActiveCell.Offset(0, 1) = 分解字串(ActiveCell, "-", 4, "保存左邊資料")
ActiveCell.Offset(0, 2) = 分解字串(ActiveCell, "-", 4, "保存右邊資料")

Y = Y + 1                       '已處理本格, 指向下一格
Loop
'       X = X + 1                           '已處理本列, 指向右面一列
'   Loop

End Sub

Public Function 分解字串(待處理字串 As String, 特殊分隔字符 As String, 第X個 As Integer, 保留動作 As String) As String

Dim J, i As Integer

原本字串 = Trim(待處理字串)     '先去除字串內首尾沒用的 SPACE, 人眼看不見, EXCEL 卻會分辨
原本字串長度 = Len(原本字串)    '

整理後新字串 = ""               '準備空白的容器, 裝載處理過的字串

i = 0

'找出指定數目的 特殊分隔字符 的位置
For J = 1 To 第X個
i = InStr(i + 1, 原本字串, 特殊分隔字符)    '開始 i = 0, 找到第N個, 位置號碼存在 i, 然後下次從 i+1 開始繼續找
If i = 0 Then Exit For                      '如果完全找不到, 退出
Next

If (i > 0 And 保留動作 = "保存左邊資料") Then
整理後新字串 = Left(原本字串, i - 1)        '如果 i > 0, 表示找到, 把這個分隔符號和後面的資料去掉
End If

If (i > 0 And 保留動作 = "保存右邊資料") Then
整理後新字串 = Mid(原本字串, i + 1)       '如果 i > 0, 表示找到, 把這個分隔符號和前面的資料去掉
End If

分解字串 = 整理後新字串 '返回函數, 處理好的資料

End Function

.
.

REF

http://blog.yahoo.com/xiao-laba/articles/382209