標題:
excel 可以把直便成行嗎?
[打印本頁]
作者:
v60i
時間:
2012-2-19 04:31
標題:
excel 可以把直便成行嗎?
A1=A
A2=1
A3=2
A4=B
A5=3
A6=4
A7=C
A8=5
A9=6
.
.
.
.
要變成
A 1 2
B 3 4
C 5 6
D 7 8
.
.
.
.
有半法嗎?
請參閱附件 謝謝
[attach]9648[/attach]
作者:
Hsieh
時間:
2012-2-19 10:13
本帖最後由 Hsieh 於 2012-2-19 23:30 編輯
回復
1#
v60i
選取E2(就是要橫向顯示的第一列位置)
新增定義名稱x
=OFFSET(Sheet1!$A$1,(ROW(Sheet1!$A1)-1)*3,,3,)
選取E2:G2
輸入陣列公式
=TRANSPOSE(x)
向下複製
[attach]9663[/attach]
作者:
register313
時間:
2012-2-19 12:55
回復
1#
v60i
E2=INDEX($A:$A,3*ROW()+COLUMN()-10,1)
[attach]9656[/attach]
作者:
v60i
時間:
2012-2-19 18:18
回復
3#
register313
大大 你的公試怎麼我套用在別格(非E2:G2)就不能用呢了??
作者:
v60i
時間:
2012-2-19 18:30
回復
2#
Hsieh
謝謝大大
太深奧了
公式完全不明白
作者:
register313
時間:
2012-2-19 18:31
回復
4#
v60i
公式會參考到 欄 與 列 位址 故欄與列位址須作調整
上傳excel檔案看看
作者:
gong
時間:
2012-2-19 18:32
位置是要精算的
A在E2
E2=INDEX($A:$A,3*ROW()+COLUMN()-10,1)
3*2+5-10=1
INDEX($A:$A,1,1)=A1="A"
如想放在I1
I1=INDEX($A:$A,3*ROW()+COLUMN()-11,1)
3*1+9-11=1
其他位置自己算算看
有問題再提出來
作者:
v60i
時間:
2012-2-19 19:14
回復
7#
gong
那請問大大
假如 A:A的為址不同
比方說重A5開始
A1~A4有別的東西
那是公式整個要換調嗎?
還是在家個公式就好??
作者:
v60i
時間:
2012-2-19 19:15
回復
6#
register313
大大 我弄別白了
來有令一個疑問
假如 A:A的為址不同
比方說重A5開始
A1~A4有別的東西
那是公式整個要更換還是在加個其他公式就好??
作者:
register313
時間:
2012-2-19 19:37
回復
9#
v60i
與 來源位址 目的位址 皆有關
設 來源第一格為A5 目的第一格為D5
[attach]9657[/attach]
作者:
v60i
時間:
2012-2-19 19:42
回復
10#
register313
哦~大大誤會囉 我是只有A 變 E2:G2不變哦
作者:
register313
時間:
2012-2-19 19:53
回復
11#
v60i
E2=INDEX($A:$A,3*ROW()+COLUMN()-6,1)
作者:
v60i
時間:
2012-2-19 20:03
回復
12#
register313
@@....................可能是我太笨了 看不懂大大得意思
[attach]9658[/attach]
作者:
register313
時間:
2012-2-19 20:27
回復
13#
v60i
E2=INDEX($A:$A,3*ROW()+COLUMN(),1)
作者:
v60i
時間:
2012-2-19 20:39
回復
10#
register313
為什麼要-14呢
有的-10
有的-11
看不出來:dizzy:
作者:
Hsieh
時間:
2012-2-19 21:24
本帖最後由 Hsieh 於 2012-2-19 23:33 編輯
回復
5#
v60i
這個用法一點也不深奧
OFFSET函數如果能找到原點後,取固定列數就是每列要呈現的位置
所以,(ROW(A1)-1)*3就會依據公式所在位置每列位移3列後為新原點
然後以新原點擴展成3列1欄
當然這樣得到的結果是3個值,而且是直列的陣列
如果將這3個值直接在儲存格公式中使用TRANSPOSE轉置
每一格都會取這個陣列的第一個值作為答案
所以必須讓直列的範圍先定義成名稱後
再以三欄一列的範圍來填入陣列,EXCEL就會自動以儲存格順序填入此陣列
所以當A欄範圍向下移動,只要將原來A1的位置改成新的資料起點即可
作者:
register313
時間:
2012-2-19 21:47
回復
15#
v60i
7樓,10樓已經有該式之說明
若尚不清楚
就該從基本的單一函數開始學起,用起(非常重要)
單一函數熟練了,函數的組合運用自然就比較沒有問題
E2=INDEX($A:$A,3*ROW()+COLUMN()-6,1)
該式用到了INDEX,ROW,COLUMN 3個基本函數
作者:
v60i
時間:
2012-2-20 00:13
回復
17#
register313
謝謝大大的指教
作者:
register313
時間:
2012-2-23 20:12
回復
18#
v60i
看看會不會更清楚
[attach]9704[/attach]
作者:
v60i
時間:
2012-2-24 18:28
回復
19#
register313
非常清楚 謝謝大大熱心教學
作者:
doriewang
時間:
2012-3-11 15:54
果然是好深奧的公式啊,看來需要多多上論壇學習了。
作者:
chen_cook
時間:
2012-3-16 08:42
請問 Hsieh 大
如果是要反過來應如何設定公式呢?? (即 ARRAY) 轉成為同一列嗎??想了很多方式都不行...麻煩囉...THX!
a b c
a1 b1 c1
a2 b2 c2
a or a
b a1
c a2
a1 b
b1 b1
c1 b2
a2 c
b2 c1
c2 c2
作者:
Hsieh
時間:
2012-3-16 09:21
回復
22#
chen_cook
在A7為作用儲存格建立名稱
x=INDEX(Sheet1!$A$1:$C$3,INT((ROW(Sheet1!$A1)-1)/3)+1,)
y=INDEX(Sheet1!$A$1:$C$3,,INT((ROW(Sheet1!$A1)-1)/3)+1)
儲存格公式
A7=IF(ROW($A1)>COUNTA($A$1:$C$3),"",INDEX(x,,MOD(ROW($A1)-1,3)+1))
B7=IF(ROW($A1)>COUNTA($A$1:$C$3),"",INDEX(y,MOD(ROW($A1)-1,3)+1,))
[attach]10010[/attach]
作者:
register313
時間:
2012-3-16 09:44
回復
22#
chen_cook
E1=INDEX(A:C,ROUNDUP(ROW()/3,0),IF(MOD(ROW(),3)=0,3,MOD(ROW(),3)))
F1=INDEX(A:C,IF(MOD(ROW(),3)=0,3,MOD(ROW(),3)),ROUNDUP(ROW()/3,0))
[attach]10011[/attach]
作者:
chen_cook
時間:
2012-3-16 16:14
感謝 register313 大 回覆
小弟表逹太差,你的方式是已知 array 項,可我要的不是這一個...
Hsieh 大大
回覆的公式......讓我又驚又喜...又學到了.....!!
作者:
yagami12th
時間:
2012-3-16 23:45
如果是用matlab的話,後面加'就直轉行了。
作者:
Hsieh
時間:
2012-3-17 09:09
回復
26#
yagami12th
請教一下,EXCEL中如何使用matlab語言?
作者:
yagami12th
時間:
2012-3-17 16:18
回復
27#
Hsieh
好像還真的可以,有一個叫excel link的東西,應該可以查查。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)