• ベストアンサー

エクセルで三行ごとのデータを1行ごとに表示させたい

下のように三行ごとにあるセルを参照し、他のセルに一行ごとに表示する方法(関数、もしくはマクロなど)   A B C D 1 あ     あ 2       い 3        4 い 5 6 7 う 8 あるいはあるセルに入力されている数値を数式内の行、または列として指定する方法を探しています。 (たとえばA1に4、A2に3と入力されていたとき、B2でその数値を取得しC3の内容を表示する、といった感じです) 簡単そうなきがするのですが私の検索が悪いのか、見つけることが出来ませんでした。ご存知の方お願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • spnlight
  • ベストアンサー率46% (15/32)
回答No.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 こういう事かな?

pinky_na
質問者

お礼

まさにこれです!やっぱりエクセルの関数でありましたね。 ありがとうございました!

その他の回答 (3)

noname#204879
noname#204879
回答No.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 の関係を説明ください。

pinky_na
質問者

補足

D3の間違いでしたすみません

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>他のセルに一行ごとに表示する方法 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の内容を表示する の内容がよくわかりませんが?

pinky_na
質問者

お礼

INDEXでもできるのですね。 なかなか沢山方法があったんですね… ありがとうございました!

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

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文で制御する必要があります。

pinky_na
質問者

お礼

OFFSETとROWだけでできたんですね。 かんがえてもわかりませんでした… INDIRECTという関数は今後も使えそうなのでしっかりと覚えたいです。 ありがとうございました!