Я работаю с данными ранжированного типа и хочу заполнить ячейку, в которую входят значения с установленным шагом между минимальным и максимальным значениями. Например, минимальный наружный диаметр составляет 1 1/16 ", а максимальный наружный диаметр - 1 11/32". Я хочу заполнить третью ячейку, которая включает каждый конец плюс все значения между ними на 32 дюйма: 1 1/16 "; 1 3/32"; 1 1/8 "; 1 5/32"; 1 3/16 "; 1 7/32"; 1 1/4 "; 1 9/32"; 1 5/16 "; 1 11/32"

Могу ли я сделать это в Excel 2007?

Пока что я просто копирую и вставляю из основного списка, разделенного точкой с запятой, все значения в диапазоне от 1 1/64-го до 2 ", а затем возвращаюсь и копирую и заменяю" 1 "на" 2 "и добавляя их в строку и так далее.

Я только что попробовал VBA-код Madball73. Мне удалось получить его для генерации значений, если значение целого числа было одинаковым для каждого предела, и я удалил ". Например, я попытался от 1 1/64 до 1 1/4 (и изменил приращение до 0,015625, так как это было до 64-го). Возвращенный код VBA: "; 1 1/64"; 1 1/32 "; 1 3/64"; 1 1/16 "; 1 5/64"; 1 3/32 "; 1 7/64"; 1 1/8 "; 1 9/64"; 1 5/32 "; 1 11/64"; 1 3/16 "; 1 13/64"; 1 7/32 "; 1 15/64"; 1 1/4"

Все ближе!

Обновление: Хорошо, с небольшим количеством настроек и добавлением окончательного "путем объединения и обрезки предыдущего", я могу заставить это работать.

Обновление 2: похоже, оно больше не работает :(

2 ответа2

0

Здесь есть более простой вариант без VBA - объединение диапазона ячеек без VBA в Excel

Есть ключевые шаги. Перейдите по этой ссылке для изображений, комментариев и других хитростей.

Создать разделительный символ

Было бы здорово, если бы у нас был символ, разделяющий значения. Вот как:

  • Выберите ячейку B2.
  • Введите = A1:A50 & "," в строке формул.
  • Изменить: в зависимости от региональных настроек попробуйте следующее: = ТРАНСПОЗИРОВАТЬ (A1:A50) & ","
  • Нажмите F9.
  • Удалить фигурные скобки в строке формул.
  • Удалить последний разделительный символ.
  • Тип = Конкатенация (перед всеми символами в строке формул.
  • Тип) после последнего символа в строке формул.
  • нажмите Ввод

Я делаю это довольно часто и считаю, что эта небольшая модификация более удобна (Office 2016):

  • Как и выше, введите что-то вроде =A1:A50&" " затем нажмите F9
  • Удалите ={ в начале и в конце } , затем нажмите ввод
  • Найти и заменить (ctrl-H) ";" с "&"
  • Добавить = в начало ячейки
0

Вот пользовательская функция VBA для вас. Используйте его, задав формулу: =IterateSizes(value(a1),value(a2))

Function IterateSizes(btmSize, topSize)
rtnValue = ""
incr = 0.03125

For i = btmSize To topSize Step incr
    fraction = Trim(Excel.WorksheetFunction.Text(i, "# ??/??"))
    rtnValue = rtnValue & """;" & fraction
Next i

IterateSizes = rtnValue
End Function

Заметка. Он был быстро скомпонован и работает для нескольких входов, которые я ему дал (не включая двойные кавычки). Но это не полностью проверено, не обрабатывает неверные входные данные, не проверяется на границе и т.д., Но является отправной точкой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .