Введите номера из двух столбцов и числа между ними в третий столбец.

Введите номера из двух столбцов и числа между ними в третий столбец.

В настоящее время у меня следующая структура таблицы: введите описание изображения здесь

Я пробовал выбрать два столбца с серией и перетащить их вниз для автозаполнения, но, похоже, это не сработало. Мне нужно что-то вроде ниже. Есть ли способ сделать это с помощью Excel, Google Sheets или чего-то еще?

введите описание изображения здесь

решение1

Если у вас установлена ​​последняя версия Excel, вЕ2введитеформула массива:

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

и скопируйте вниз:

введите описание изображения здесь

Формулы массиванеобходимо ввести с помощью Ctrl+ Shift+, Enterа не просто Enterклавиши.

В противном случае введите следующую пользовательскую функцию в стандартном модуле:

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

Затем вЕ2входить:

=CSList(C2,D2)

и скопируйте вниз:

введите описание изображения здесь

Пользовательские функции (UDF) очень просты в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте текст и закройте окно VBE

Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как.xlsmскорее, чем.xlsx

Чтобы удалить UDF:

  1. откройте окно VBE, как указано выше
  2. очистить код
  3. закрыть окно VBE

Чтобы использовать UDF из Excel:

=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 Sheets. Просто нажмите на столбец и введите =range2series(CELL), например range2series(D4).

Больше подробностей,ссылаться.

Связанный контент