- ベストアンサー
エクセルで三行ごとのデータを1行ごとに表示させたい
下のように三行ごとにあるセルを参照し、他のセルに一行ごとに表示する方法(関数、もしくはマクロなど) A B C D 1 あ あ 2 い 3 4 い 5 6 7 う 8 あるいはあるセルに入力されている数値を数式内の行、または列として指定する方法を探しています。 (たとえばA1に4、A2に3と入力されていたとき、B2でその数値を取得しC3の内容を表示する、といった感じです) 簡単そうなきがするのですが私の検索が悪いのか、見つけることが出来ませんでした。ご存知の方お願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
A B C D 1 あ 1 =INDIRECT("A" & B1,1) 2 4 =INDIRECT("A" & B2,1) 3 7 =INDIRECT("A" & B3,1) 4 い 5 6 7 う 8 こういう事かな?
その他の回答 (3)
D1: =IF(OFFSET(A$1,(ROW(A1)-1)*3,,)=0,"",OFFSET(A$1,(ROW(A1)-1)*3,,)) 》 A1に4、A2に3と入力されていたとき、B2でその数値を取得しC3の内容を表示 C3 は D3 の間違いでは? 間違いでなければ、「その数値」と C3 の関係を説明ください。
補足
D3の間違いでしたすみません
- hallo-2007
- ベストアンサー率41% (888/2115)
>他のセルに一行ごとに表示する方法 1行目、4行目、7行目・・・と表示する方法ですが =INDEX(A:A,(ROW(A1)*3)-2,1) >あるいはあるセルに入力されている数値を数式内の行、または列として指定する方法 一例ですが A1に4 A2に3 とあって 4行目の3列目を表示する方法 =OFFSET(A1,A1-1,A2-1) >B2でその数値を取得しC3の内容を表示する の内容がよくわかりませんが?
お礼
INDEXでもできるのですね。 なかなか沢山方法があったんですね… ありがとうございました!
- mshr1962
- ベストアンサー率39% (7417/18945)
D1==OFFSET($A$1,ROW()*3-3,0) または D1=INDIRECT("A"&(ROW()*3-2)) ※注意.参照するA列のセルが未入力の場合は0が表示されます。 それを避ける場合は D1=IF(OFFSET($A$1,ROW()*3-3,0)="","",OFFSET($A$1,ROW()*3-3,0)) のようにIF文で制御する必要があります。
お礼
OFFSETとROWだけでできたんですね。 かんがえてもわかりませんでした… INDIRECTという関数は今後も使えそうなのでしっかりと覚えたいです。 ありがとうございました!
お礼
まさにこれです!やっぱりエクセルの関数でありましたね。 ありがとうございました!