Объединить диапазон со значениями между

Я работаю с данными ранжированного типа и хочу заполнить ячейку, которая содержит значения с заданными приращениями между минимальным и максимальным. Например, минимальный наружный диаметр составляет 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 ответа

Решение

Вот пользовательская функция 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

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

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

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

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

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

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

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

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