6

以下に、質問を説明するのに役立つはずのExcelのテーブルと同様のサンプルテーブルを作成しました。column1の個別のデータの後に行を追加したい(最も簡単な方法、Excelを使用、ありがとう)。

_

現在のテーブル:

column1   |   column2   |  column3
----------------------------------
  A       |     small   |  blue
  A       |     small   |  orange
  A       |     small   |  yellow
  B       |     med     |  yellow
  B       |     med     |  blue
  C       |     large   |  green
  D       |     large   |  green
  D       |     small   |  pink

_

望ましいテーブル

注:各個別の列の後の空白行1

column1   |   column2   |  column3
----------------------------------
  A       |     small   |  blue
  A       |     small   |  orange
  A       |     small   |  yellow

  B       |     med     |  yellow
  B       |     med     |  blue

  C       |     large   |  green

  D       |     large   |  green
  D       |     small   |  pink
4

7 に答える 7

18

これは、あなたが求めていることを正確に実行し、行をチェックし、列Aの変更ごとに空白の空の行を挿入します。

sub AddBlankRows()
'
dim iRow as integer, iCol as integer
dim oRng as range

set oRng=range("a1")

irow=oRng.row
icol=oRng.column

do 
'
if cells(irow+1, iCol)<>cells(irow,iCol) then
    cells(irow+1,iCol).entirerow.insert shift:=xldown
    irow=irow+2
else
    irow=irow+1
end if
'
loop while not cells (irow,iCol).text=""
'
end sub

それがあなたが始められることを願っています、私たちに知らせてください!

フィリップ

于 2013-03-14T19:15:49.633 に答える
1

データが連続していない場合 (1 2 3 4 が 5 7 3 1 5)、並べ替えができない場合、これは機能しません。

私がその問題を解決する方法は次のとおりです。

列 各数値の間に 5 行を含める必要がある初期データ - 5 4 6 8 9

列 B - 1 2 3 4 5 (最後の数字は、列 A の数字の間にある必要がある空の行の数を表します) 列 A に数字がある限り、列 B に 1-5 をコピーして貼り付けます。

D1 タイプ 1 の D 列にジャンプします。D2 にこの式を入力します -=IF(B2=1,1+D1,D1) 列 B と同じ長さにドラッグします。

列 C に戻ります - C1 セルにこの式 - を入力し=IF(B1=1,INDIRECT("a"&(D1)),"")ます。それを下にドラッグして完了です。列 C には、列 A と同じ数列が 4 行ずつ分散されています。

于 2016-05-01T13:21:50.340 に答える
0

理解した。

ステップ1

column1の左側に新しい列を配置し、次の数式をコピーして貼り付けます

= B2 = B3

= B3 = B4

= B4 = B5

...一番下まで(ここの列Bが元の質問のcolumn1であると仮定します)。

この式は、次の行がcolumn1の新しい値であるかどうかを評価します。結果に応じて、TRUEまたはFALSEになります。これらの結果をコピーして値として貼り付けてから、「FALSE」をnilに、「TRUE」を0.5に置き換えます。

ステップ2

次に、0.5だけでいっぱいの列をcolumn1に追加すると、次のテーブルが生成されます。

  newcolumn0  |   column1 ("B") |   column2   |  column3
-----------------------------------------------------
              |     1           |     small   |  blue
              |     1           |     small   |  orange
      1.5     |     1           |     small   |  yellow
              |     2           |     med     |  yellow
      2.5     |     2           |     med     |  blue
      3.5     |     3           |     large   |  green
              |     4           |     large   |  green
      4.5     |     4           |     small   |  pink

ステップ3

最後に、newcolumn0の値をコピーしてcolumn1の値のすぐ下に貼り付けてから、テーブルをcolumn1で並べ替えると、column1の個別の整数の間に空白の行があり、テーブルは次のようになります。

    newcolumn0   |  column1 ("B")  |   column2       |  column3
---------------------------------------------------------------
                 |     1           |     small   |  blue
                 |     1           |     small   |  orange
        1.5      |     1.5         |             |
                 |     1           |     small   |  yellow
                 |     2           |     med     |  yellow
                 |     2           |     med     |  blue
        2.5      |     2.5         |             |
                 |     3           |     large   |  green
        3.5      |     3.5         |             |
                 |     4           |     large   |  green
                 |     4           |     small   |  pink
        4.5      |     4.5         |             |

代替ソリューション(まだVBAはありません)

  1. 1列1、行2の値を入力します(これがA2であると想定します)
  2. この数式をA3に入れ、この数式=IF(B3=B2,A2,A2+1)をコピーして2列目の残りの部分に貼り付けます
  3. 次に、列1のすべての値をコピーして新しい一時Excelシートに貼り付け、重複を削除してから、すべての数値に0.5を追加し、これらの値を元のスプレッドシートの値の下の列1のデータの下に貼り付け、列のすべてのデータを次のように貼り付けます。値を入力してからその列で並べ替え、一時的なExcelシートを削除します
于 2013-03-14T19:13:30.297 に答える
0
  1. テーブル「コントロール」の左側に列を挿入します
  2. データに 1 ~ 1000 の番号を付けます (1000 行があると仮定)
  3. キー フィールドを別のシートにコピーして重複を削除する
  4. 1000 番目のレコードの後に​​、固有の行アイテムをメイン シートにコピーします。
  5. [コントロール] 列で、すべての一意のレコードに番号 1001 を追加します
  6. データ (追加されたレコードを含む) を、最初にキー フィールドで、次に「コントロール」で並べ替えます。
  7. 空白行 (キー フィールドにデータがあり、「コントロール」) が追加されます。
于 2017-03-29T07:17:30.027 に答える
-1

ミューチュアル ファンド ユニットの売買を扱う Excel に大きなファイルがあります。ワークシートの行数が 4000 を超えています。VBA の経験がなく、基本的な Excel で作業したいと考えています。上記の解決策からヒントを得て、次の方法で問題を解決しようとしました(空白行を自動的に挿入する):

  1. 制御フィールドに従ってファイルをソートしました
  2. ファイルに列を追加しました
  3. 「IF」関数を使用して、制御データに変更があるかどうかを判断しました。
  4. 変更がある場合、結果は「はい」を示し、そうでない場合は「いいえ」を示します
  5. 次に、データをフィルタリングして、すべての「はい」項目をグループ化しました
  6. 投資信託名、フォリオ番号などをコピーしました(財務データなし)
  7. 次に、フィルターを削除して、ファイルを再度並べ替えました。その結果、目的の場所に行が追加されます。(完全に空白の行ではありません。完全に空白の場合、並べ替えによって行が目的の場所に配置されないためです。)
  8. 並べ替え後、すべての値を簡単に削除して、完全に空白の行を取得できます。

この方法は、読者も試すことができます。

于 2015-11-12T08:12:03.353 に答える