EXCELで、文字が入った行を別のワークシートで参照したいのですが、
=OFFSET(Sheet5!$C$1,0,0)
として、
その下の行は
=OFFSET(Sheet5!$C$1,1,0)
さらにその下は
=OFFSET(Sheet5!$C$1,2,0)
さらにその下は
=OFFSET(Sheet5!$C$1,3,0)
というふうに数字を1つずつ増やしたのですが、セルをコピーしてマウスで下にドラッグしても
連続して数字が増えていきません。
=OFFSET(Sheet5!$C$1,この部分,0) →ここの部分の数字を1つずつ増やして
いくにはどうしたらいいのでしょうか?
No.5ベストアンサー
- 回答日時:
No.2です。
>参照元のセルの文字に、色をつけているのですが、
>参照したほう側では、それが反映されないのでしょうか?
数式によって返ってくる結果は「値」だけだと思います。
すなわち参照先の書式までは表示することはできないはずです。
他の方の補足の
>7行ずつ、参照して次にまた残りの行列から、別の表を繰り返し作りたのですが
とあり新たに画像をアップされていますが、
元データの書式も別Sheetに7行・2列のデータにしたい!という場合は
VBAになってしまいますが一例です。
元データはSheet1のA2セル以降にあり、Sheet2に表示させるとします。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() 'この行から
Dim i As Long, cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS.Cells.Clear
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row Step 14
.Cells(i, "A").Resize(7).Copy wS.Cells(Rows.Count, "A").End(xlUp).Offset(2)
.Cells(i + 7, "A").Resize(7).Copy wS.Cells(Rows.Count, "B").End(xlUp).Offset(2)
Next i
End With
wS.Rows(1).Delete
For i = 1 To wS.Cells(Rows.Count, "A").End(xlUp).Row
If wS.Cells(i, "A") = "" Then
cnt = cnt + 1
wS.Cells(i, "A") = "表" & cnt
End If
Next i
Application.ScreenUpdating = True
End Sub 'この行まで
※ 関数でないのでデータ変更があるたびにマクロを実行する必要があります。
書式もSheet1の書式をコピー&ペーストしています。m(_ _)m
ありがとうございました。
さっそく試してみましたが、とても便利です。
セルの位置など変更しながら、自分なりに応用してみたいと思います。
いろいろ勉強になりました。ありがとうございました。
No.4
- 回答日時:
>今回の関数を応用して行7,列2の表を繰り返し作成したのですが7行ずつ、参照して次にまた残りの行列から、別の表を繰り返し作りたのですが、2つ目の表を作るところは、どのしたらいいのでしょうか?
元データがA2から下へ入力されているものとして、C2:D8に1つ目の表を作成すし、C10:D16へ2つ目の表を作成する場合は次のようにすれば良いでしょう。
C2=OFFSET($A$1,MOD(ROW(A1),8)+INT(ROW(A1)/8)*14+(COLUMN(A1)-1)*7,0)
C2セルをC2:D8へコピー&ペーストで複写します。
次にC2:D8を選択してコピーし、C10へ貼り付けます。
更にC18へ貼り付ければ3つの表ができます。
縦に4つ目以降を貼り付けるときはC26、C32、・・・・のように等間隔で貼り付ければ目的の表になるでしょう。
別のシートに作成する場合は元データの位置はSheet1!$A$1のように変更します。
また、行番号の算出をSHEET関数を応用します。
Sheet2のC2セルは次の数式になります。
=OFFSET(Sheet1!$A$1,MOD(ROW(A1),8)+(SHEET()-2)*14+(COLUMN(A1)-1)*7,0)
SHEET()の戻り値はタブの位置で左から1、2、3、・・・・のようになります。
貼付画像はExcel 2013で元データの中に表1~表3を作成したものです。
bunji様 さっそく、ありがとうございました。
なかなか高度な内容で、まだ自分自身関数の意味を理解しきれていませんが
大変勉強になります。
これで、なんとか作成してみます。どうもありがとうございました。
No.3
- 回答日時:
>セルをコピーしてマウスで下にドラッグしても連続して数字が増えていきません。
>OFFSET(Sheet5!$C$1,この部分,0) →ここの部分の数字を1つずつ増やして いくにはどうしたらいいのでしょうか?
OFFSET関数の引数で行番号や列番号に実数を使うと定数なのでオートフィルでコピーしても変化しません。
変化させるにはセルの属性を利用しないといけません。
例えば提示の =OFFSET(Sheet5!$C$1,0,0) で行番号の0の代わりに ROW(A1)-1 とすれば下へコピーしたときA1がA2に変化しますので結果として ROW(A2)-1 → 2-1 → 1 となります。
尚、文字列に数字が付加されたデータをオートフィルでコピーすると最も右側の数字が繰り上がります。
提言の数式を文字列に置き換えても列番号は変化しますが行番号は左側の数字なので繰り上がりません。
理由は追求せずにそのような動作になっていることを認識してください。
詳しい解説ありがとうございました。いろいろ勉強したいです。
連続した文字が入っている行を参照して、きまったサイズの表を作りたいのですが、
今回の関数を応用して行7,列2の表を繰り返し作成したのですが
7行ずつ、参照して次にまた残りの行列から、別の表を繰り返し
作りたのですが、2つ目の表を作るところは、どのしたらいいのでしょうか?
(質問のページに写真をアップしました。)
No.2
- 回答日時:
こんにちは!
OFFSET関数に関しては
すでに的確な回答が出ていますので、余計なお世話かもしれませんが・・・
=INDEX(Sheet5!C:C,ROW(A1))
とか
=INDIRECT("Sheet5!C"&ROW(A1))
でも同じ結果が得られると思います。m(_ _)m
この回答への補足
またまた教えて下さい。
参照元のセルの文字に、色をつけているのですが、
参照したほう側では、それが反映されないのでしょうか?
参照元の文字の一部をボールドにした場合、
別のワークシートで参照した場合、そちらに書式も同じように
参照する方法はありますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
- Excel(エクセル) Excelで縦1列に並んだ大量の数字から、一定間隔で平均値を出したい。 2 2023/02/20 09:17
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) Excelでなぜこのような式をつかっているのでしょうか、行に1,2,3と連番を振るだけなのに 5 2023/04/08 20:00
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel関数-文字列で自動作成さ...
-
エクセルの関数について教えて...
-
Excelデータをコピペして、ペー...
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
Excelで50個のセルに同じ文字を...
-
スプレッドシート、Excelでの数...
-
Microsoft Officeの中古は信用...
-
エクセルで不等号記号(≠)が上に...
-
スプレッドシートで使う数式を...
-
エクセルでの特別な文字を上に...
-
エクセル日付 文字列の関数がエ...
-
A列とB列を参照してC列に連番を...
-
エクセルVBA、別ブックへ転記す...
-
各ページの1番上の表示について
-
エクセルでセルに標準で入力さ...
-
EXCELの質問です 119から足した...
-
pdfの表をexcelにはりつけて計...
-
Excelのif関数で文字が見えなく...
-
【マクロ】アクティブセルにブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報