プロが教える店舗&オフィスのセキュリティ対策術

下のように三行ごとにあるセルを参照し、他のセルに一行ごとに表示する方法(関数、もしくはマクロなど)

  A B C D
1 あ     あ
2       い
3       
4 い


7 う


あるいはあるセルに入力されている数値を数式内の行、または列として指定する方法を探しています。

(たとえばA1に4、A2に3と入力されていたとき、B2でその数値を取得しC3の内容を表示する、といった感じです)

簡単そうなきがするのですが私の検索が悪いのか、見つけることが出来ませんでした。ご存知の方お願いします

A 回答 (4件)

  A B C D


1 あ 1   =INDIRECT("A" & B1,1)
2   4   =INDIRECT("A" & B2,1)
3   7   =INDIRECT("A" & B3,1)
4 い


7 う

こういう事かな?
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/08 09:22

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の間違いでしたすみません

補足日時:2008/08/08 09:25
    • good
    • 1

>他のセルに一行ごとに表示する方法


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の内容を表示する
の内容がよくわかりませんが?
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/08 09:30

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文で制御する必要があります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/08 09:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!