• 締切済み

エクセルで一行(列)ずつ挿入するのを1発でする方法

を教えてください。 学習成績一覧表を、1学期から3学期までのものを一つにまとめたいのです。 例えば、A1セルから始まって横に(B1,C1・・・と)児童名が入っているとします。 この児童名と児童名の間に2列ずつ間を空けたいのです。つまりA1セルに出席番号1番の子の名前が入っていたとしたら、B列とC列を空白の列にし、B1セルに入っていた児童名がD1セルになるようにしたいのです。 上手く説明できませんが、分かっていただけるでしょうか? どなたか、よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

関数で考えるが、質問者の別の質問の書きぶりからして、難しすぎる課題と思う。 操作の列挿入でやれば仕舞いでは。 例データ Sheet1にA1:C1に 山田 木村 鈴木 Sheet2に A2に =INDEX(Sheet1!$A$2:$X$100,ROW()-1,INT((COLUMN()-1)/3)+1)ト入れて右方向に式を複写 山田 山田 山田 木村 木村 木村 鈴木 鈴木 鈴木・・ となる、 この各人の列で2、3番目を空白になるように変える。 =IF(MOD(COLUMN(),3)<>1,"",INDEX(Sheet1!$A$2:$X$100,ROW()-1,INT((COLUMN()-1)/3)+1)) 山田 ーー 木村 ーー 鈴木 100行やX列は適当に変えることa

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

「一発で」といっても多少の操作は必要です。 例として、児童さんが3人とします。(セルA1、セルB1、セルC1) 行2と行3は空白であるとします(もし何かあるなら、2行挿入してください。後で削除できます) 1)セルA2に値1、セルB2に値2、セルC2に値3を入力。セルA3からセルC3まですべてに値0を入力 2)セルA2からセルC2までを選択して「コピー」 3)セルD2を選択して「貼り付け」(セルD2からセルF2に値が入ります) 4)セルD3からセルF3までのすべてに値1を入力 5)セルD2からセルF3まで(この場合は6セル)を選択して「コピー」 6)セルG2を選択して「貼り付け」(セルG2からセルI3に値が入ります) これで以下のデータになります。 ABC 123123123 000111111 7)セルA1を選択し、Ctrl+Shift+Endキーを押下。 8)No.2さんの回答の方法で、列方向の並べ替え。キー1は行2の昇順、キー2は行3の昇順。 これで以下のデータになります。 A  B  C 111222333 011011011 結果を確認できたら行2行3は削除してOKです。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

列単位で並べ替える 添付図参照

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

こんにちは! VBAでの一例です。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので、 ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i As Long For i = Cells(1, Columns.Count).End(xlToLeft).Column To 2 Step -1 Range(Columns(i), Columns(i + 1)).Insert Next i End Sub 'この行まで こんな感じではどうでしょうか?m(__)m

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

関連するQ&A

  • エクセルで3つのデータを1つにまとめたい

    よろしくお願いします。 どなたか、簡単な方法を教えてください。 どういう事かと言いますと、 1学期から3学期までの学習成績の一覧表を一つにまとめたいのです。 例えば、B1セルに出席番号1番の子の名前が入っているとします。すると、C列とD列は空白の列で、出席番号2番の子の名前は、E1セルに入ります。また2列空白列を作り、出席番号3番の子の名前はH1セルに入ります。というのを、30数人分名前を入れます。 A2セルには、例えば国語の読む力という評価項目を入れるとすると、その下(つまりA3セル)には国語の書く力、A4セルには国語の話す力・・・というふうに項目が入ります。 元になる表は、各学期ごとに作った一覧表です。これは、児童名と児童名の間に空白列はありません。当たり前ですが。これが違うファイルとして3つあるわけです。ここから、上に書いたような表を作り、例えば出席番号1番の子の1学期の国語の読む力の評価はB2セルに、2学期の読む力の評価はC2セルに、3学期の評価はD2セルに、一気に飛ばしたいのです。 LOOKUP系の関数を使うのかなぁと漠然と想像はしているのですが、VLOOKUPすら理解できていないので、いちいち「=」を使ってコピーしています。 だらだらとした分かりにくい文章で申し訳ありませんが、一気に片付く方法をご存知の方がいましたら、よろしくお願いします。

  • Excelで3つのシートを一つにまとめる方法

    お世話になります。よろしくお願いします。 学校で成績表をつけるときに、一覧表も作るのですが、これを一つのシートにまとめたいのです。 成績表は学期ごとに作るので、3枚できます。形式は同じです。文で書くと分かりにくいかもしれませんが、例えばB2セルに出席番号1番の子の名前を入れると、C2セルには2番の子・・・というふうに、横の列には氏名が入ります。縦の列には、各教科の観点が入ります。例えばA3セルに国語の読む力、A4セルには国語の書く力・・・などと入れていきます。これが1学期分、2学期分、3学期分と3枚できるわけです。 これを1枚の別のシートにまとめたいのです。例えばB2、C2、D2セルを結合して氏名を入れ、その下のB3セルには1学期の成績、C3セルには2学期の成績、D3セルには3学期の成績が、元になっているシートから飛んでくるようにしたいのです。 分かりにくい説明で、申し訳ありませんが、簡単にできる方法を思いつかれた方は、教えていただけないでしょうか? よろしくお願いします。

  • Excelで「A列で任意のグループ」「B列は空白以外」「C列は空白セル」の数

    さきほど、質問をした者です。 回答を締め切った後で、追加質問がありますので、新たに質問させていただきます。(たびたびスミマセン) Excelで「A列で任意のグループ」名、かつ、「B列は空白ではないセル」、かつ、「C列は空白セル」の件数を出したいのです。 (オートフィルタではなく。) =SUMPRODUCT((A3:A271="グループ名")*(B3:B271="▲▲▲")*(C3:C271="")) という式を作ったのですが、「B列の空白以外」という条件にする"▲▲▲"の部分はどうすればいいのでしょう?

  • エクセルでの列の挿入に関しまして

    標記の件に関しまして、お伺いさせてください。 列を挿入しようとすると・・・ データの消失を防ぐため、空白でないセルをワークシート外にシフトすることはできません。 ctrl+endキーを押して最後の空白でないセルに移動し、そのセルとデータ末尾との間にあるすべてのセルを削除またはクリアしてください。その後、セルA1を選択し、ブックを保存して最後のセルをリセットしてください。 または、データを新しい位置に移動し、もう一度行って下さい。 ―――――――――――――――――――――――――――――――― というメッセージが出て、列を挿入することが出来ません。 何かよい改善策はないでしょうか? ご存知の方、宜しくお願い致します。

  • Excelで特定の列の空白を埋める方法

    エクセルで次のようなことは可能でしょうか? 昨日も同じような質問をいたしましたが、よろしくお願いします。 A列に次のように入力されているとします。 (昨日、質問で文字列にa,b,cを付け加える方法を教えていただきましたが、以下のものは一つずつ入力してあるとします。) 001a 001b 空白 空白 002a 空白 空白 空白 003a 空白 空白 ここの空白を 001a 001b 空白 → 001c 空白 → 001d 002a 空白 → 002b 空白 → 002c 空白 → 002d 003a 空白 → 003b 空白 → 003c とする方法はないでしょうか?(千行くらいを自動的に) あとこれに関連して別の質問ですが、 ある列の001a, 001bなどのアルファベットのみ削除(はずす)して 001,002だけの数字にする方法も教えていただけないでしょうか? よろしくお願いします。

  • EXCELで式での空白セルの挿入方法

    A列は空白行で、B列は数値が入っていたり空白だったりする行で構成されています。 またC列からD列までの全ての行には数値が入っています。 この時A列に条件付き数式を入力して、B列が空白でなければB列に空白セルを挿入して現B列からD列を右にシフトさせたいのですが、数式で可能でしょうか? 数式で可能ならばA列に入力する式を、不可能なら参考のためVBAでの記述をお教え頂けると嬉しいです。(VBAはあまり理解しておりませんが。) 例 【処理前】 A列 B列 C列 D列 E列     22   33  44          55  66     77   88  99         100  101 【処理後】 A列 B列 C列 D列 E列 式       22  33  44 式       55  66 式       77  88  99 式      100  101 2万行の処理を1回のみしたいです。 宜しくお願いします。

  • エクセルマクロの作り方(初歩)で教えてください。

    エクセルマクロについての初心者です。小学校で使うテスト結果の分析表(○、×の一覧表)作成の支援ソフトを作ろうとしていますが途中でわからなくなったので教えてください。 マクロにについては、配列変数、For Next,Do Loopのことが少し理解できる程度で、それらを組み合わせて作ろうとしましたが、使い方がよく分かりません。説明を簡単にするため、次の例で教えてください。児童数は40で、2行目から41行目までに児童の名前やデータが入ります。A列は出席番号、B列は名前、CからG列は正解した番号を記入するセル(問題は5問)、HからL列は問題1~5の○×を1と0で表示させます。そして出席番号1番の児童が3番と5番だけ正解なら、C2に3、D2に5を入れるだけで、H2~L2に0,0,1,0,1と自動的に表示されるようにしたいのです。実際には、児童数は200、問題数を50ぐらい考えています。C2~G2までのデータを配列変数に入れて、H2のセルにはIF文を組みわせて0か1を表示させて、それをL2まで繰り返し、それ全体を41行目まで繰り返して…とやろうとしたのですが、繰り返し方でうまくいきません。このような方法でなくてもかまいません。もっと簡単な方法があればそれも教えてください。よろしくお願いします。

  • エクセルでセルを挿入しても関数値を変更させない方法

    C1せるに計算値=a1+b1設定します 次にaとbの間に列を挿入します すると、c1セルの計算値は自動的に=a1+c1となります。 つまりはじめにa1に10、 b1に20と入力すると、cの値は30 でセルを挿入しても30のまんまということですが、 このセル(列)を挿入しても、計算式はa1+b1の まんまにはできないのでしょうか? アドバイスありましたら よろしくお願いします。 わかりずらい説明でごめんなさい

  • エクセルで列の空白を数えるには?

     A B C 1 * 2   3 2 4 *   5 1 6 * セルに*マークを記入してある、間隔の空欄を計算したいのですが。どうやってやりますか? 空欄の最後に空白が連続した数を表示させたいです。 B,C・・・列も同様に同じ計算をします。

  • A列が空白なら、計算式の入っているB.C・・~列も空白で表示する方法。

    A列に対して、B.C・・~列にそれぞれ違った式が入っています。 A列が空白だと、B列#N/A、C列1 ・・・と、それぞれ答えが返ってきます。 今までは、各B、C・・列に「A列が空白の場合は表示しない」設定を「条件付書式」を使ったり「IF(ISERROR・・」の関数を使ったり 無い知恵と知識を振り絞って悪戦苦闘の末、1列1列・・こつこつ設定していたのですが 「もっと簡単な方法があるのでは??」と都合のいいことを考えました。 しかし、恥ずかしながら私には知識が無いもので、そんな事が出来るのか、また仮に出来るとしても方法がわかりません。 関数でも、条件付書式でも、何でもかまいません。 指定したセルが空白の場合、そのセルに対して数式が入っている他の複数セルにも何も表示しないように一発で出来るようにするには、 どうすればいいのか教えて頂けませんか? 98です。出来るだけ簡単な方法がありがたいです。 余談なのかもしれませんが、B列にはVLOOKUPの関数、C列には「A列内の数字+1」と言う式が入っています。 C列はA列に0と入力しても、空白でも1という答えが返ってきてしまいます。そこでA列が空白の場合答えが表示されないようにしたいのです。) 宜しくお願いします。

専門家に質問してみよう