• ベストアンサー

エクセルについて教えていただきたいです。

エクセルについて教えていただきたいです。 こんにちは エクセルでマスターデータを作成していますがどうしてもわからないところがあるのでご教授願います。 セルに入れた値(変更可能)に応じてその入れた値の列数分他のセルに連続で入力されるというなんともわかりづらい悩みです。 A1に“10”と入力 B2から“10”列分のK2まで同じ値が(100と)入る  →ここの自動ではいる値(100)はC1で自動計算された値 A1を“20”としたらB2からU2まで100が入る この説明でわかるでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.7

>この数式をコピーして貼り付けたところ…できませんでした。  失礼しました、私の勘違いです。  B2から連続させる値は、B1の値ではなく、C1の値でした。  ですから、回答番号:ANo.2の数式ではなく、次の様な数式になります。 =IF(AND(ISNUMBER($A$1),$C$1<>""),IF(COLUMNS($B:B)>$A$1,"",$C$1),"")

lupin_the_third
質問者

お礼

kagakusuki様 お返事ありがとうございます。 確かにこの式でできました。 どの方法がいいのかわかりかねますが、たくさんの手助けをいただいて感謝しております。 ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

>B2セル=IF(COLUMN(B2)<=$A$1+1,$C$1,"") >この方法で確かにできました。ただセルB2からずいぶん離れたら反映されなかったです。 上記のB2セルに入力する数式はB2セルを参照する数式になっていますが、COLUMN関数で単純に数字を取得しているだけですから、B2を使用する意味は全くありません。 すなわち、実際はどのセルに入力しても同じ数式(上記の数式ならB2セルを参照するような数式)を入力する必要があります。 普通なら以下のような1から始まる数値を参照できるようにした以下のような数式の方がわかりよいと思います。 この場合も、もちろんA1セルを参照しているわけではなく単純に1(その右の列なら2)を取得しているだけです。 =IF(COLUMN(A1)<=$A$1,$C$1,"") したがって、どのセルに入力する場合も、この式を入力して右方向にオートフィルする必要があるわけです。

lupin_the_third
質問者

お礼

MackyNo1様 この方法でできました!! 一見単純な式でできることに驚きです。 ありがとうございます。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.3です! 前回のコードではその都度2行目のデータをDeleteで削除し、マクロを実行しなくてはならないので、 その手間を省くコードにしてみました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim i As Long For i = 2 To Cells(2, Columns.Count).End(xlToLeft).Column Cells(2, i).ClearContents Next i For i = 2 To Cells(1, 1) + 1 Cells(2, i) = Cells(1, 3) Next i End Sub これで、データが変わるたびにマクロが実行されると思います。 何度も失礼しました。m(__)m

すると、全ての回答が全文表示されます。
  • beeba
  • ベストアンサー率49% (25/51)
回答No.4

No1の方の回答でよくって、 もしかしてExcel2003以前のバージョンで、256列オーバーしているとか、 >この方法で確かにできました。ただセルB2からずいぶん離れたら反映されなかったです。 離れたセルに、No1さんの式が入力されてないとか、そんなこと無いでしょうか? 当て嵌まらなかったらごめんなさい。

参考URL:
http://www.excel.studio-kazu.jp/tips/0016/
lupin_the_third
質問者

お礼

beeba様 お返事ありがとうございます。 ご指摘のとおりExcelは256列でオーバーしています。 ただ、256を超えていたとしてもA1から返されますのでこまっていました。 離れたセルに入力してもA1からなんです… ありがとうございます。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! VBAになってしまいますが・・・ 一例です。 操作したいSheet見出し上で右クリック → コードの表示 → 白い画面が出ますので、 ↓のコードをコピー&ペーストしてマクロを実行して見てください。 ごくごく単純に質問内容だけをコードにしてみました。 Sub test() Dim i As Long For i = 2 To Cells(1, 1) + 1 Cells(2, i) = Cells(1, 3) Next i End Sub 尚、一旦マクロを実行すると元に戻せませんので 別Sheetで試してみてください。 的外れならごめんなさいね。m(__)m

lupin_the_third
質問者

お礼

tom04様 ありがとうございます。 残念ながらVBAについて詳しくはなく…トライしてみましたが難しかったです こういった方法もあることで勉強になりました。 難しい式をありがとうございます。

すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 B2セルに次の数式を入力後、B2セルをコピーして、B3から右方向にあるセルに貼り付けると良いと思います。 =IF(AND(ISNUMBER($A$1),$B$1<>""),IF(COLUMNS($B:B)>$A$1,"",$C$1),"")

lupin_the_third
質問者

お礼

kagakusuki様 回答ありがとうございます。 この数式をコピーして貼り付けたところ…できませんでした。 自分のやりかたがわるかったのでしょうか。 申し訳ないです。 なにか気をつけるところがあったらまたご連絡お願いいたします。 お助け感謝しています。 ありがとうございます。

すると、全ての回答が全文表示されます。
  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.1

以下の方法ではいかがでしょうか。 B2セル=IF(COLUMN(B2)<=$A$1+1,$C$1,"") 以下、必要な分まで、右にB2セルをドラッグコピーする。

lupin_the_third
質問者

お礼

aokii様 早急なお返事ありがとうございます。 この方法で確かにできました。ただセルB2からずいぶん離れたら反映されなかったです。 やはり難しいのでしょうか。 C1の値も変動するとなるとさらにわからなくなるので… しかし返答がきたときは感動しました。 ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A