2列目の数字と、その間の数字を3列目に入力します。

2列目の数字と、その間の数字を3列目に入力します。

現在、テーブル構造は以下のようになっています。 ここに画像の説明を入力してください

シリーズを含む 2 つの列を選択し、下にドラッグして自動入力しようとしましたが、うまくいかないようです。以下のようなものが必要です。Excel、Google スプレッドシートなどでこれを行う方法はありますか?

ここに画像の説明を入力してください

答え1

最新バージョンのExcelをお持ちの場合は、E2を入力配列数式:

=TEXTJOIN(",",TRUE,ROW(INDIRECT(C2 & ":" & D2)))

コピーしてください:

ここに画像の説明を入力してください

配列数式キーだけではなく、Ctrl+ Shift+で入力する必要があります。 それ以外の場合は、標準モジュールに次のユーザー定義関数を入力します。EnterEnter

Public Function CSList(n1 As Long, n2 As Long) As String
    Dim i As Long
    For i = n1 To n2
        CSList = CSList & "," & i
    Next i
    CSList = Mid(CSList, 2)
End Function

そして、E2入力:

=CSList(C2,D2)

コピーしてください:

ここに画像の説明を入力してください

ユーザー定義関数 (UDF) はインストールも使用も非常に簡単です。

  1. ALT-F11でVBEウィンドウが開きます
  2. ALT-I ALT-Mで新しいモジュールを開く
  3. 内容を貼り付けてVBEウィンドウを閉じます

ワークブックを保存すると、UDFも一緒に保存されます。2003以降のバージョンのExcelを使用している場合は、ファイルを次のように保存する必要があります。.xlsmそれよりも.xlsx

UDF を削除するには:

  1. 上記のようにVBEウィンドウを開きます
  2. コードを消去する
  3. VBEウィンドウを閉じる

Excel から UDF を使用するには:

=CSList(A1,B1)

マクロ全般の詳細については、以下を参照してください。

http://www.mvps.org/dmcritchie/excel/getstarted.htm

そして

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

UDF の詳細については、以下を参照してください。

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

これを機能させるにはマクロを有効にする必要があります。

答え2

上記の解決策は、MS Excel を使用してもうまくいきましたが、その後、Google スプレッドシートで解決できました。MS Excel にアクセスできない人のために、この回答をここに追加します。

手順:

  1. 「ツール」メニューに移動し、「スクリプト エディター...」をクリックします。
  2. コード ファイルを開き、以下のコードを貼り付けて保存します。

    function range2series(input) {
    
      try {
    
         var r = input.split("-");
         var exist = r[1];
    
         //get the start and stop value
         var start = r[0];
         var last  = r[1];
         var current = start;
         var output = "";
    
         while (current <= last) {
           output += current;     
           output += ",";
           current++;                     
         }  
    
         //remove the last comma.
          output = output.substring(0, output.length - 1);
          return output;
    
        } catch(err) {
           //if single value and not range send back the input.
           return input; 
        }  
    
    
    
    }
    

これで、Google スプレッドシートで関数を使用できるようになりました。列をクリックして、=range2series(CELL)たとえば と入力するだけですrange2series(D4)

詳細については、参照する

関連情報