次の方法で共有

Excelの行に一括で追加移動する関数を教えてください

Anonymous
2019-12-14T05:05:27+00:00

Excelのシートの行を一行ごとに一括で追加(移動)したい

元のシート

abcdefg 12345678910
hijklmn 111213141516
opqrstu 171819202122
vwxyz 232425262728

変更後のシート(右の列の文字を一行ごとに左の列に追加移動)

abcdefg
12345678910
hijklmn
111213141516
opqrstu
Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

ひまじん 17,185 評価のポイント
2019-12-14T09:46:46+00:00

こんにちは。

シート名や表の配置・構成が不明なので、元のシート名を Sheet1、変更後のシート名を Sheet2 と仮定し、表の配置・構成についても図1、図2と仮定して考えてみました。

※尚、元のシートと変更後のシートを同一のシートとした場合で、同一の表に上書きしたいといった場合には、VBA(マクロ)を使わなければ出来ないかと思います。念のため。

図1 元のシート(Sheet1):A列と B列にデータ入力

図2 変更後のシート(Sheet2):数式の実行結果

  • まず、Sheet2 の A1 セルに下記の数式を入れます。

=OFFSET(Sheet1!A$1,INT((ROW(A1)-1)/2),MOD(ROW(A1)-1,2),,)&""

  • 次に、この A1 セルの数式を下方向(行方向)に必要なだけコピーします。

コピーする行数は多めでも大丈夫です。

例えば 88行必要でしたら 100行目までコピーしておいても構いません。

<数式の動作概要>

INT 関数と ROW 関数[ INT((ROW(A1)-1)/2) ]で行方向の移動距離を算出し、MOD 関数と ROW 関数[ MOD(ROW(A1)-1,2) ]で列方向の移動距離を算出して OFFSET 関数に渡します。

OFFSET 関数は Sheet1 の A$1 セルを基点として、渡された移動距離にあるセル内容を表示します。

※ INT((ROW(A1)-1)/2) について

ROW(A1) の部分を相対参照を利用した行方向のカウンタとして使います。

ROW(A1) は 1 です。

なので、数式が下方向(行方向)にコピーされると、この INT 関数の結果は、

・INT((ROW(A1)-1)/2) = INT((1-1)/2) = 0

・INT((ROW(A2)-1)/2) = INT((2-1)/2) = 0

・INT((ROW(A3)-1)/2) = INT((3-1)/2) = 1

・INT((ROW(A4)-1)/2) = INT((4-1)/2) = 1

・INT((ROW(A5)-1)/2) = INT((5-1)/2) = 2

・INT((ROW(A6)-1)/2) = INT((6-1)/2) = 2

  ・

  ・

と変化していきます。

※ MOD(ROW(A1)-1,2) について

ROW(A1) の部分を相対参照を利用した行方向のカウンタとして使います。

ROW(A1) は 1 です。

なので、数式が下方向(行方向)にコピーされると、この MOD 関数の結果は、

・MOD(ROW(A1)-1,2) = MOD(1-1,2) = 0

・MOD(ROW(A2)-1,2) = MOD(2-1,2) = 1

・MOD(ROW(A3)-1,2) = MOD(3-1,2) = 0

・MOD(ROW(A4)-1,2) = MOD(4-1,2) = 1

・MOD(ROW(A5)-1,2) = MOD(5-1,2) = 0

・MOD(ROW(A6)-1,2) = MOD(6-1,2) = 1

  ・

  ・

と変化していきます。

最終的には、図2のような実行結果が得られます。

尚、数式の最後の &"" は、Sheet1 の A列および B列に空白があった場合に数式の結果として数値の 0 が表示されてしまうので、これを空白に変える意味で入れています。

なので、Sheet2 に表示される結果は全て文字列となります。

ご参考になれば幸いです。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

2 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2019-12-15T07:24:39+00:00

    どうもありがとうございました。

    上手く移動ができました。12/15

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2019-12-14T10:43:15+00:00

    どうもありがとうございます。明日さっそくやってみます。

    結果はその後ご報告します。

    ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません