如何在協作平台上建立"留言板"? - Google

By Elma
at 2011-06-14T19:18
at 2011-06-14T19:18
Table of Contents
※ 引述《little1011 (Q毛)》之銘言:
: 我講一下我用doc的方法
: 但是都是很陽春方法
: 留言板是用文件的 問卷做的
: http://sites.google.com/site/graduate97season/book/board
: show 留言 就直接把回報的試算表貼出 但是我用清單呈現
: http://sites.google.com/site/graduate97season/book/board/see
: 我一直有再找有沒有辦法把最新的留言放在上面
: 不過還沒試成功 所以就是手動把時間順序調整
這幾天也在試把最新留言放在最上面的方法,
http://sites.google.com/site/joycesyyen/home/documents-list/DocsForMsgBoard
我是在同一個試算表中開另一個新的工作表,再利用函數抓值,之後把原來的工
作表隱藏再嵌入到協作平台上,目前的測試結果還沒有問題。
這張圖是問卷回傳的資料(時間越新越下面):
http://picasaweb.google.com/lh/photo/lnHXHXtGTtJ1gBCHEWoN98-8QOTBlEXBaFVETIdfO3M?feat=directlink
http://goo.gl/VCj8g
這張是利用函數抓值後的資料(時間越新越上面):
http://picasaweb.google.com/lh/photo/Px75_qh_UTM5EVa1SDW-Ns-8QOTBlEXBaFVETIdfO3M?feat=directlink
http://goo.gl/qP7TX
我主要是利用Google Docs問卷的特性去做,所以其實跟時間序列的函數沒關係XD
A3=if(counta(Sheet1!A:A)-(row($A3)-3)<=1,"",
concatenate(index(Sheet1!$A:$C,counta(Sheet1!A:A)-(row($A3)-3),1),
":"))
B3=if(counta(Sheet1!A:A)-(row($B3)-3)<=1,"",
index(Sheet1!$A:$C,counta(Sheet1!$A:$A)-(row($B3)-3),2))
這裡需要用到的函數有以下幾種:
●counta():計算所有引數裡含有非空白資料的儲存格數目。
●row():傳回reference中之列號。
●index(array,row_num_column_num):傳回陣列或儲存格範圍所指定的某一元素的值。
●concatenate():將多組字串組合成單一字串。
●if():如果指定的條件為true則傳回一個值,如果為false則傳回另一值。
1.首先利用counta(Sheet1!$A:$A)計算總共有幾筆資料。
2.因為Sheet2的第一列與第二列為我設為標題,資料便從第三列開始,此時A3利用
index(Sheet1!$A:$C,counta(Sheet1!$A:$A)-(row($A3)-3),1)來抓Sheet1最後一筆資料
的第一欄。
(row($A3)-3=0,row($A4)-3=1,此公式中"-3"為常數,與資料從第幾列開始相關。)
(counta(Sheet1!$A:$A)-(row($A3)-3):是計算我們要抓Sheet1中第幾列的資料,假設
counta(Sheet1!$A:$A)=12,因為row($A3)-3=0,則我們要抓的資料便位於Sheet1中的第
12列,也就是最新的資料,同樣的,counta(Sheet1!$A:$A)-(row($A4)-3)=11,所以A4的
值是次新的資料。)
(index(資料範圍,列,欄):index是根據我們給的儲存格位址抓資料,將上面計算的結果
代入,A3=index(Sheet1!$A:$C),12,1)=Sheet1!A12,
A4=index(Sheet1!$A:$C),11,1)=Sheet1!A11,
B3=index(Sheet1!$A:$C),12,2)=Sheet1!B12,
C3=index(Sheet1!$A:$C),12,3)=Sheet1!C12。)
3.到第2步驟已經算是完成了,但為了更美觀,可以再作一些調整。concatenate(步驟2抓
的資料,":"),因為第一欄是名字,這是將我們抓過來的資料後面加上":",所以B與C欄
便不需要加上這個函數。
4.上面假設共有10筆留言資料(因為計算counta(Sheet1!$A:$A)=11時是包含了標題列,所
以標題列1+留言數10=11),當我到了A13時,counta(Sheet1!$A:$A)-(row($A13)-3)=1,
會抓到Sheet1的標題列,因此我使用if(counta(Sheet1!$A:$A)-(row($A13)-3)<=1,"",執
行步驟2),這代表我若執行步驟2抓到標題列就空白,不是標題列就顯示。
看起來好像很複雜,其實寫完一格其他格都一樣XD
--
Joyce S.Y. Yen
--
: 我講一下我用doc的方法
: 但是都是很陽春方法
: 留言板是用文件的 問卷做的
: http://sites.google.com/site/graduate97season/book/board
: show 留言 就直接把回報的試算表貼出 但是我用清單呈現
: http://sites.google.com/site/graduate97season/book/board/see
: 我一直有再找有沒有辦法把最新的留言放在上面
: 不過還沒試成功 所以就是手動把時間順序調整
這幾天也在試把最新留言放在最上面的方法,
http://sites.google.com/site/joycesyyen/home/documents-list/DocsForMsgBoard
我是在同一個試算表中開另一個新的工作表,再利用函數抓值,之後把原來的工
作表隱藏再嵌入到協作平台上,目前的測試結果還沒有問題。
這張圖是問卷回傳的資料(時間越新越下面):
http://picasaweb.google.com/lh/photo/lnHXHXtGTtJ1gBCHEWoN98-8QOTBlEXBaFVETIdfO3M?feat=directlink
http://goo.gl/VCj8g
這張是利用函數抓值後的資料(時間越新越上面):
http://picasaweb.google.com/lh/photo/Px75_qh_UTM5EVa1SDW-Ns-8QOTBlEXBaFVETIdfO3M?feat=directlink
http://goo.gl/qP7TX
我主要是利用Google Docs問卷的特性去做,所以其實跟時間序列的函數沒關係XD
A3=if(counta(Sheet1!A:A)-(row($A3)-3)<=1,"",
concatenate(index(Sheet1!$A:$C,counta(Sheet1!A:A)-(row($A3)-3),1),
":"))
B3=if(counta(Sheet1!A:A)-(row($B3)-3)<=1,"",
index(Sheet1!$A:$C,counta(Sheet1!$A:$A)-(row($B3)-3),2))
這裡需要用到的函數有以下幾種:
●counta():計算所有引數裡含有非空白資料的儲存格數目。
●row():傳回reference中之列號。
●index(array,row_num_column_num):傳回陣列或儲存格範圍所指定的某一元素的值。
●concatenate():將多組字串組合成單一字串。
●if():如果指定的條件為true則傳回一個值,如果為false則傳回另一值。
1.首先利用counta(Sheet1!$A:$A)計算總共有幾筆資料。
2.因為Sheet2的第一列與第二列為我設為標題,資料便從第三列開始,此時A3利用
index(Sheet1!$A:$C,counta(Sheet1!$A:$A)-(row($A3)-3),1)來抓Sheet1最後一筆資料
的第一欄。
(row($A3)-3=0,row($A4)-3=1,此公式中"-3"為常數,與資料從第幾列開始相關。)
(counta(Sheet1!$A:$A)-(row($A3)-3):是計算我們要抓Sheet1中第幾列的資料,假設
counta(Sheet1!$A:$A)=12,因為row($A3)-3=0,則我們要抓的資料便位於Sheet1中的第
12列,也就是最新的資料,同樣的,counta(Sheet1!$A:$A)-(row($A4)-3)=11,所以A4的
值是次新的資料。)
(index(資料範圍,列,欄):index是根據我們給的儲存格位址抓資料,將上面計算的結果
代入,A3=index(Sheet1!$A:$C),12,1)=Sheet1!A12,
A4=index(Sheet1!$A:$C),11,1)=Sheet1!A11,
B3=index(Sheet1!$A:$C),12,2)=Sheet1!B12,
C3=index(Sheet1!$A:$C),12,3)=Sheet1!C12。)
3.到第2步驟已經算是完成了,但為了更美觀,可以再作一些調整。concatenate(步驟2抓
的資料,":"),因為第一欄是名字,這是將我們抓過來的資料後面加上":",所以B與C欄
便不需要加上這個函數。
4.上面假設共有10筆留言資料(因為計算counta(Sheet1!$A:$A)=11時是包含了標題列,所
以標題列1+留言數10=11),當我到了A13時,counta(Sheet1!$A:$A)-(row($A13)-3)=1,
會抓到Sheet1的標題列,因此我使用if(counta(Sheet1!$A:$A)-(row($A13)-3)<=1,"",執
行步驟2),這代表我若執行步驟2抓到標題列就空白,不是標題列就顯示。
看起來好像很複雜,其實寫完一格其他格都一樣XD
--
Joyce S.Y. Yen
--
Tags:
Google
All Comments

By David
at 2011-06-17T01:55
at 2011-06-17T01:55

By Lucy
at 2011-06-18T11:19
at 2011-06-18T11:19

By Rebecca
at 2011-06-21T14:16
at 2011-06-21T14:16
Related Posts
要多強的電腦才跑的動google earth

By Anonymous
at 2011-06-14T15:20
at 2011-06-14T15:20
Chrome Book 抽獎活動

By Barb Cronin
at 2011-06-14T14:19
at 2011-06-14T14:19
BBS外掛

By Mason
at 2011-06-14T08:17
at 2011-06-14T08:17
剛剛才發現Google Chrome更新了

By Belly
at 2011-06-14T03:24
at 2011-06-14T03:24
安裝GOOGLE MAP?

By Heather
at 2011-06-14T03:13
at 2011-06-14T03:13