A列のデータが違うところで、空白を開けたいのですが、どうすればいいのでしょうか。よろしくお願いします。
データの行数は不定です。

1 t1  **  **
2 t2  **  **
3 t2   **  **
4 t3   **  **

 を
1 t1  **  **

3 t2  **  **
4 t2  **  **

6 t3  **  **

8 t4

 にしたい。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>データの行数は不定です



ということなので補足しておきます。下記マクロで不定行数でも大丈夫です。
また、元のA列の並びの中に未入力行があるとうまくいきません。下記では最初に未入力行を削除し、その後で行挿入を行っています。参考までに。

Sub GyoSonyu2()
  Dim rw As Long 'A列のセル
  Dim rwCount As Long 'A列の値が登録された最後の行番号

  Application.ScreenUpdating = False
  'A列のセルが未入力ならその行を削除
  rwCount = Range("A:A").SpecialCells(xlCellTypeLastCell).Row
  For rw = rwCount To 2 Step -1
    If Cells(rw, 1) = "" Then
      Rows(rw).Delete
    End If
  Next

  'A列でセルの値とその前のセルの値が違えばば行挿入
  rwCount = Range("A:A").SpecialCells(xlCellTypeLastCell).Row
  For rw = rwCount To 2 Step -1
    If Cells(rw, 1) <> Cells(rw - 1, 1) Then
      Rows(rw).Insert
    End If
  Next
  Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
返事、遅れてすいません。
みごとですね。
そのまま、使わせていただきます。
勉強になりました。

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

お礼日時:2001/07/30 10:54

VBAで解らない時は、マクロを新規に作成して、そのプログラムを編集で見ると解ります。


やり方はお分かりと思いますが、念のため書いておきます。
「1行を挿入するマクロ」です。

1.「ツール」「マクロ」「新しいマクロの記録」を順にクリックしていきます。
2.「ショートカットキー」を入力して、「OK」
3.「行番号」をクリックして、
4.「挿入」「行」をクリック
5.「マクロ終了ボタン」をクリックして終了です。

「マクロ記録終了」ボタンが表示されていないときは、「表示」「ツール」「記録終了」をクリックすると、表示されます。

つぎに、「ツール」「マクロ」「マクロ」「編集」で
プログラムが表示されます。

これを読むとどのようにプログラムすればよいかわかります。

老婆心ながら・・・・

参考URL:http://www2.odn.ne.jp/excel/index.html
    • good
    • 0
この回答へのお礼

ありがとうございます。
そうやれば、簡単にできるんですね。
なにしろ、初心者なもので、
知りませんでした。
参考になりました。
 ありがとうございました。

お礼日時:2001/07/30 11:07

telmiさん、おはようございます。


前回のご質問の反対ですね。

行番号を削除しなければ、簡単なのに・・・。
(行番号ソートでもとに戻ったはずですよ)

行番号を付与しない方法です。
[データ]-[集計]を利用します。

1.見出し行を追加します。
2.[データ]-[集計]をクリックします。
3.[グループの基準]にtの値の列を指定します。
4.[集計の方法]は合計でもデータの個数でもOK。
5.[集計するフィールド]の適当でOK。
6.ダイアログの[OKボタン]を押下。
7.集計表が表示されますから、左側に追加表示された集計レベル(正式名?)の
  「2」をクリックします。
8.グループの計の行だけが表示されますから、1行ごとに内容を消去してください。
  ここで一度にすべて消去すると肝心のデータも消えます。
  必ず1行ごとに消去してください。
9.集計レベル(正式名?)の「3」をクリックします。
  各グループの計の行が「空白行」となりました。
10.シート全体をコピーし、別シートに[形式を選択して貼り付け]-[値]でOK。

えいやっ!で実現する、姑息な手段です。
    • good
    • 0
この回答へのお礼

返事、遅れてすいません。
なるほど。
そんなやりかたが、あるんですね。
面倒ですがそれで、できますね。
参考になりました。
 ありがとうございました。

お礼日時:2001/07/30 11:01

こんな感じですか。



Sub GyoSonyu()
  Dim rw As Long

  For rw = 4 To 2 Step -1
    If Cells(rw, 1) <> Cells(rw - 1, 1) Then
      Rows(rw).Insert
    End If
  Next
End Sub
    • good
    • 0
この回答へのお礼

毎度ありがとうございます。

お礼日時:2001/07/30 11:09

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qテーブルリンク エクセルの4行目を先頭行にしたい

エクセルのデータをアクセスにテーブルリンクしたいのですが
エクセルの先頭行が4行目から始まります。
なおかつA1に文字が入ります。
(画像参照)

このエクセルデータをアクセスの
「テーブルのリンク」→ファイルを選ぶ
→ワークシートリンクウィザードが表示され、次のページに進み、
「先頭行をフィールド名として使う」にチェックを入れたいのですが、先頭行は4行目です。

この場合、どうすればエクセルの4行目を
アクセスのテーブルリンクの先頭行にできるのでしょうか?

エクセルのA1の文字を消去すれば自動的に4行目がアクセスで先頭行になりますが
エクセルの方は決まったフォーマットなのでA1の文字を消去することはできません。

ご回答よろしくお願いします。

Aベストアンサー

#1です

Excel ファイル側に手を入れられるのなら、#2さんの方がお勧めです。

なお、範囲名部分が行方向に増えるのなら、(Excel側で範囲を再設定)
何もせずに Access 側から変更を含めて値を得ることが出来るようですが、
列方向に範囲が広がった場合、 リンクの更新(RefreshLink)が必要みたいです。

嘘を言ってるかも知れないので、裏取りはしっかりとしてください。

Qエクセルで同じA列の中に、1,2,3,4,5,6,2,3,4,2,1,3,2,2,2,3,1という

エクセルで同じA列の中に、1,2,3,4,5,6,2,3,4,2,1,3,2,2,2,3,1,3,1というような順番で数字が並んでいます。

その数字の中で、1→3と3→1になるものがいくつあるか求めたいのですが、出す関数・マクロがわかりません。
教えていただけないでしょうか?

よろしくお願いします。

Aベストアンサー

こんばんは!

>A列の中に
とは行方向に数値が入っている!というコトでしょうか?

そうであれば
表示したいセルに
=COUNTIFS(A1:A1000,1,A2:A1001,3)+COUNTIFS(A1:A1000,3,A2:A1001,1)
としてみてください。

「1」の次の行が「3」の場合と
「3」の次の行が「1」の場合をプラスしています。m(_ _)m

Qエクセルで、条件を指定した行数のカウントについて

エクセルにて、条件に合致する行数のカウントを行うことは出来ますでしょうか。

添付画像のようなエクセルファイルにて、各日毎に「AAA」を含む行は何行あり、「BBB」を含む行は何行あるかをカウントしたいです。

添付のエクセルであれば、A列が「10月1日」でB列に「AAA」を含む行は○行という条件でカントが出来れば実現可能とは思いますが、
こういったカウントの仕方がそもそもエクセルで出来るのかどうか知りたいです。

もし、エクセル以外の方法で可能なのであれば、その方法も教えていただけるとありがたいです。

Aベストアンサー

SUMPRODUCT関数などを使った場合にはデータ数が多くなった場合には計算が重くなります。
作業列を使った方法がよいでしょう。
お示しのデータがシート1に有るとしてC列を作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(A1="","",IF(COUNTIF(B1,"AAA*"),A1&"AAA",IF(COUNTIF(B1,"BBB*"),A1&"BBB","")))

次にお望みの表を別のシートに表示させるとしたら別のpシートのB1セルにはAAAと入力しC1セルにはBBBと入力します。
A2セルから下方には例えば10月1日からの日付を入力します。
B2セルには次の式を入力してC2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF($A2="","",COUNTIF(Sheet1!$C:$C,$A2&B$1))

QExcelで1を入力し、セルの右下を+でドラッグした時、1,2,3,4となるようにしたい

Excelで1を入力し、セルの右下を+でドラッグした時、1,2,3,4となるようにしたいのですが、どのようにしたら良いでしょうか?文字列にしても数値にしても1,2,3,4となってしまうのですが。

Aベストアンサー

Ctrlキーを押しながらドラッグしてください。

Qテキストファイルから必要な項目(行)をエクセルの行に移行させるには

テキストファイルから必要な項目(行)をエクセルの行に移行させる簡単な方法を教えて下さい。
1テキスト=エクセルの1行

Aベストアンサー

コピーアンドペーストでうまくいく気がします。
テキストファイルを、ノートパッドなどで開いて、全文をコピーし、エクセルに貼り付けるだけです。エクセルは、左上端のセル一つだけが選択された状態にしておきます。複数のセルを選択しているとサイズが合わないと文句を言われるかもしれません。

Qエクセルで特定の条件に一致した文字を抜き出す方法 シート1 4/1 シート2 1行目 4/1 4/2

エクセルで特定の条件に一致した文字を抜き出す方法

シート1
4/1

シート2
1行目 4/1 4/2 4/3
2行目 A B C

シート1の4/1と入力されているセルを指定するとシート2のAをシート1の4/1の下に表示するには関数をどう使えば良いですか?

Aベストアンサー

シート2の行と列を入れ替えることはできませんか?
↓こんな感じ

4/1 A
4/2 B
4/3 C

これであればvlookupを使ってシンプルにできます。

Qエクセルの行の幅について

 エクセルの行幅を立ち上げ時点から太くしたいと思います。
 エクセルの行の幅は、立ち上げると12.75という高さになっているようです。しかし、これでは少々見づらいので15くらいにしたいと思います。
 もちろん、「行の高さ」で変更できるのは分かるのですが、毎回、修正するのが煩雑です。従って、立ち上げた初期段階から行の高さを変更することはできないでしょうか。

Aベストアンサー

う~ん。

確か、エクセルの初期設定で変更できるのは、
「シート数」「フォントの書体」「フォントの大きさ」
くらいだったと思います。
行の幅を、立ち上げ時から指定の幅にする事は出来なかったような…。

私自身、エクセルを結構利用するのですが、行の幅を変更するときは、
「全選択(画面左上の行(1)の上、と列(A)の左、の長方形の部分をクリック)」して、
行(1)と、行(2)の間にある線をドラッグして一気に全ての行の幅を変えています。

もし、それすらも煩雑と感じるほどにエクセルを新規で立ち上げているのであれば、
以下の方法はどうでしょうか?

1.行の幅を15に設定した「白紙のエクセル」をデスクトップに保存する。
2.新規で利用したい場合は、1で保存したエクセルをデスクトップ上でコピー(Ctrl + C)&ペースト(Ctrl + V)
3.ペーストしたエクセル(白紙で行幅15)を立ち上げる。

こうすれば、毎回行幅を変更する事なく、立ち上げ時から行幅15のエクセルが使用できますよ♪

ただ、全選択して一気に行幅を変える前者のやり方の方が簡単な気もしますが…。(汗

う~ん。

確か、エクセルの初期設定で変更できるのは、
「シート数」「フォントの書体」「フォントの大きさ」
くらいだったと思います。
行の幅を、立ち上げ時から指定の幅にする事は出来なかったような…。

私自身、エクセルを結構利用するのですが、行の幅を変更するときは、
「全選択(画面左上の行(1)の上、と列(A)の左、の長方形の部分をクリック)」して、
行(1)と、行(2)の間にある線をドラッグして一気に全ての行の幅を変えています。

もし、それすらも煩雑と感じるほどにエクセルを新規で立...続きを読む

Qexcel2003 2列のデータを1列に 改良

excel2003 にて2グループのリストを全グループリストに表示したい。

前回もこちらでお世話になっております。
前回の改良版として作成しています。

画像を添付しましたので参照していただきご回答をお願いいたします。

行いたいことは
Aグループのサブ番号と氏名 Bグループのサブ番号と氏名を
全グループリストに順番に表示させたい。
セル番号 J6 K6 に入れる数式を教えてください。

よろしくお願いいたします。 

Aベストアンサー

たとえば、以下のような数式をJ6セルに入力し、右方向に1つ下方向に10個オートフィルしてください。

=OFFSET($B$5,ROW(A1)-(COUNTA($B$6:$B$15)<ROW(A1))*COUNTA(B$6:B$15),COLUMN(A1)-1+4*(COUNTA($B$6:$B$15)<ROW(A1)))&""

Qエクセルの行の幅がずれる

エクセルで表を作っているのですが
行の高さを25にして確かめてみると
どうしても24.5というように25の幅になっていません。
どうすればきっちり自分の設定した行の高さになるのでしょうか教えてください。
エクセルは2000を使っています。

Aベストアンサー

セルの高さの単位はなんでしょう?
ポイントという単位なのですが、1ポイントは約0.35mmでポイントは文字の大きさの単位と同じです。エクセルでは11ポイントの場合標準の高さが13.5、14ポイントでは17.5と変化します。
エクセルの標準フォントの高さを基準にしています。(これはオプションで変更できます。)

ピクセルと言う基準があって、これをポイントと言う単位に直しているので、25と言う端数のない数値にならない事がある。

例えば、幅はどうでしょう、これは標準フォントの文字数を表しています。(規定があるのですが省略)

と言う事で、出来ません。
25の右にあるピクセルと言う単位を基本に使うようにしたらいかがでしょう。
例えば列幅とも100ピクセルを選択するとセルは正方形になります。(ピクセルは列幅とも同じ物です。)
この併記はエクセル2000から始まったようですが。(単位が違うので、合わせるためみたいです。)

QExcel 2列のデータを合計して1列にするには

以下のような表1があります。
コード 摘要    収入

    A    B    C    D    E    F
1  1月  1日   1月   2日   1月   3日
2    1    1    2    2    3    3

例えばAとBは1月1日のデータで、2列目には数値データが入っています。この場合1月1日の合計値は2です。
このシートを元にして

    A     B     C
1 1月1日 1月2日 1月3日
2   2     4     6

上記のような表2を作成したいと思いますが、オートフィルのコピーでは1列ずつ合計されていくのでうまくいきませんでした。
表1の日付の表記は、1セルに「n月n日」となるよう変更することは都合上できません。
簡単に表が作れる方法があれば教えて下さい。よろしくお願いします。

Aベストアンサー

「表1」が Sheet1 にあると仮定すれば、他のシートのセル A1、A2 にそれぞれ次式を入力して、範囲 A1:A2 を右方にズズーッとドラッグ&ペースト
A1: =OFFSET(Sheet1!$A1,,(COLUMN(A1)-1)*2)&OFFSET(Sheet1!$B1,,(COLUMN(A1)-1)*2)
A2: =SUM(OFFSET(Sheet1!$A2,,(COLUMN(A2)-1)*2,1,2))


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報