重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

B1からF1のセルには、商品名、数量、単価etcの項目が入っています。
B4セルには =IF(D2="","",B3) の数式が入っています。
D3に文字が入力されると、
B5セルに 数式 =IF(D3="","",B4)  が自動で入るように設定したいのです。
  (B5セルに自分で数式をコピーするのではなく)
お教えいただけましたら助かります。よろしくお願いいたします。

A 回答 (2件)

No.1です。



なぜフィル&コピーではダメなのか判りかねますが、
お示しの数式が実際の数式ではなく、もっと複雑な数式で
あらかじめ数式をフィル&コピーしておくとPCの計算速度が落ちる!というのであれば判る気もしますが、
最近のPCでは少々長い数式でフィル&コピーしておいても殆ど気にすることはないと思います。

それとも数式そのものは複雑ではないが相当の行数、例えば数千行とか下へフィル&コピーするのは大変だ!
というコトであれば、一案です。
仮に1万行までフィル&コピーする場合は
B列の左右どちらかの列に作業用として1列挿入、仮にC列を挿入した場合は
C4セルに「4」という数値を入れ
もう一度C4セルを選択 → メニューの右側の「Σ」のアイコンの下にある下向き矢印(フィルのアイコン)をクリック
→ 連続データの作成 → 「列」を選択 → 停止値の窓に「10000」と入力しOK
4行目から10000行目まで連番が表示されます。
B4セルのフィルハンドルでダブルクリック!
これでB10000まで数式がフィル&コピーされましたので
最後に挿入したC列を削除して完了です。

>マクロを使わず、できる方法はありませんでしょうか?

数式を「自動で入れる」となると
フィル&コピーかVBAしか思いつきません。

※ 他に良い方法があればごめんなさい。m(_ _)m
    • good
    • 0
この回答へのお礼

できました! ありがとうございました。
「連続データの作成」 で数字が連続して出てきた瞬間、魔法のようでびっくりしました。
そして、数式のコピーも一瞬で作成することができました。
感謝申しあげます。

お礼日時:2018/05/29 08:01

こんばんは!



>D3に文字が入力されると、
>B5セルに 数式 =IF(D3="","",B4)  が自動で入るように設定したいのです

単純にB4セルのフィルハンドルで下へコピーすれば済む話だと思うのですが・・・

>(B5セルに自分で数式をコピーするのではなく)
とあるので、フィル&コピー以外の方法をご希望なのでしょうか?

そうであればVBAだと可能です。
参考程度で・・・
↓のコードをシートモジュールにしてみてください。

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D:D")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Row > 2 Then
If .Value <> "" Then
Range(Cells(4, "B"), Cells(.Row + 2, "B")).Formula = Range("B4").Formula
End If
End If
End With
End Sub

※ 手元のExcelで再確認してみたのですが、
D列(単価?)の列にデータが入ればB列は常にすぐ上のセルを返す数式なので
無意味のような気がします。m(_ _)m
    • good
    • 0
この回答へのお礼

早速、ご回答いただきありがとうございます。
今まで、下へコピーして使っていたのですが、違う方法があればと思っております。
マクロを使わず、できる方法はありませんでしょうか?
お教えいただけましたら助かります。よろしくお願いいたします。

お礼日時:2018/05/28 21:15

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