- ベストアンサー
エクセルでフィルハンドルのドラッグについて
よろしくお願いします。 A1セルのフィルハンドルを下方向にドラッグして A1「=IF(sheet1!AE5=1,sheet1!Y5,"")」 A2「=IF(sheet1!AE7=1,sheet1!Y7,"")」 A3「=IF(sheet1!AE9=1,sheet1!Y9,"")」 としたいのですが、なぜか連続してしまいます。 理由のわかる方、対処方法を教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>A1=IF(MONTH(入力!AE5)=1,入力!Y5,"") Sheet1の所が入力に変わるだけです。 ROW()関数は、数式のある行数を返します。 A1の場合は1になりますね。 OFFSET(基準,行移動,列移動,行数,列数)関数は、 基準から行,列移動した行数,列数の範囲を表示します。 OFFSET(Sheet1!$AE$5,(ROW()-1)*2,0) A1の時は、Sheet1のAE5から0行,0列移動なのでAE5をそのまま表示 A2の時は、Sheet1のAE5から2行,0列移動なのでAE7を表示 となり後は2行ずつずれていきます。 INDIRECT関数は文字表示されたセル座標の内容を表示します。 INDIRECT("Sheet1!AE5")=Sheet1!AE5 となりますので 5の部分をROW関数を用いて計算させてます。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17070)
同一列の隣接セルに数字を1,3と入れて、その2セルを範囲指定し、フィルハンドルを引っ張ると 1 3 5 7 ・ となるが ーー D1に=A1 D2に=A3と入れて、フィルハンドルを下方向に引っ張っても =a1 =a3 =a5 =a7 となりません。 =IF(Sheet1!A1=1,1,0) =IF(Sheet1!A3=1,1,0) で、2セルを指定してフィルハンドルを引っ張っても同じ。 >連続してしまいます 連続しないが、スムーズに飛び飛びに変化させられない。 それでOFFSETなどの関数を使うことになります。 関数の上級編です。 難しい質問を考えたのだから仕方がありません。がんばってください。
お礼
そうですね、ご指摘いただいた通りだと思います。 エクセルって難しく思えて簡単だったり、簡単に思えて 難しかったりするんですね。 皆さんを頼りすぎていた面があると思い反省しております。 少し、時間をかけてじっくり考えてみようと思います。 回答いただきありがとうございましたimogasiさんへのお礼も併せて させていただく無礼をお許しください。 また、質問で終わっていまいますがお気になさらないようお願いします。
- mshr1962
- ベストアンサー率39% (7417/18945)
A1=IF(OFFSET(Sheet1!$AE$5,(ROW()-1)*2,0)=1,OFFSET(Sheet1!$Y$5,(ROW()-1)*2,0),"") または A1=IF(INDIRECT("Sheet1!AE"&ROW()*2+3)=1,INDIRECT("Sheet1!Y"&ROW()*2+3),"") で下方にコピー
お礼
素早い回答ありがとうございます。 予想を遙かに超えた数式なので驚きです。 ただ、素人の私にはさっぱりです。 申し訳ないのですが、 A1=IF(MONTH(入力!AE5)=1,入力!Y5,"") の時はどうなるのでしょうか? よろしくお願いします。
お礼
丁寧な説明ありがとうございます。 初めて触れる数式なのでちょっと理解に時間がかかりそうです・・・ それとせっかくご提案いただいたのですが、うまく使えないで困っています。 私の説明不足のための事と思います。 申し訳ありませんがもうしばらく回答いただきたいです。 入力用のシートのAEの列に「5/10」といった形式で日付を入力しています。行は結合しているためAE5・AE7と奇数行になっています。 別(管理用)のシートでAEの列で「1/××」←1月の日付の入ったもの と同じ行のセルを参照したいと思っています。 例えば 入力用シートAE5に「1/10」と入ったとき 別(管理用)のシートA1が 入力用シートY5になる この場合は=IF(MONTH(入力!AE5)=1,入力!Y5,"") 同様に 入力用シートAE7に「1/10」と入ったとき 別(管理用)のシートA2が 入力用シートY7になる この場合は=IF(MONTH(入力!AE7)=1,入力!Y7,"") 後はA3A4と続けていきたいです しかしドラッグがうまくいかないのです。 うまく説明できていないと思いますが、 回答していただけると助かります。 お手数をおかけして申し訳ないです。