输入两列中的数字,并将中间的数字输入到第三列

输入两列中的数字,并将中间的数字输入到第三列

目前,我有一个如下的表结构: 在此处输入图片描述

我尝试选择系列中的两列并将其向下拖动以进行自动填充,但似乎不起作用。我需要类似下面的内容。有没有办法用 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 Sheets 中解决这个问题。我在这里添加这个答案,以方便那些可能无法使用 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)

更多细节,参考

相关内容