Формула Excel - Как разделить значение формулы в ячейке на 2 разные ячейки?

В моем листе Excel у меня есть столбец, который получает транспонированные данные из строки другого листа.

=TRANSPOSE(DATA!L170:CC170)

Примером данных ячейки является 0/300, и они одинаковы во всем столбце.

Теперь я планирую иметь 2 новых столбца рядом с первым столбцом, чтобы показывать числа отдельно:

| 0/300 | 0 | 300 |

Я хочу, чтобы 2 столбца отображали свои значения, как только в первом столбце появятся данные.

Сначала я хотел попробовать встроенную функцию преобразования текста в столбец. Но, по-видимому, это не работает, потому что обнаруживает только формулу, а не значение.

Есть ли другая формула, которая может делать то, что я хочу? Макрос, безусловно, сработает, но я также ищу более простой метод, если он есть.

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
0
186
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это может быть довольно трудно достичь. Я думаю, невозможно.

Почему? Потому что функция ТРАНСПОЗИРОВАТЬ возвращает диапазон очень точного размера, без места для добавления новых столбцов внутри.

Обходной путь:

Добавьте дополнительные столбцы справа, за концом диапазона. Просто используйте функции ОСТАЛОСЬ/СРЕДНЯЯ/ПРАВИЛЬНО, чтобы получить фрагменты из исходного текста.

Обходной путь будет работать, если размер диапазона не изменится, и если содержимое всегда будет одинаковым в одних и тех же позициях. Если вам нужна (высоко) адаптивная формула, вам нужно будет перейти в VBA для Excel, и это будет «уродливее».


Редактировать: я принял это как должное, но у @МитчеллДин есть хороший момент:

Note that you can use FIND in your left functions in case of different sizes of inputs: =LEFT(A1,(FIND("/",A1,1)-1)). Such as 0/300, 0/3000, 30/30000

Обратите внимание, что вы можете использовать НАЙТИ в своих левых функциях в случае разных размеров входных данных: =ЛЕВЫЙ(A1,(НАЙТИ("/",A1,1)-1)). Например, 0/300, 0/3000, 30/30000

Mitchell Deane 09.04.2019 08:21
Ответ принят как подходящий

Есть два метода, которые вы можете попробовать:

Способ 1

Формула для столбца А:

=IFERROR(LEFT(A1,FIND("/",A1)-1),"")

Формула для столбца B:

=IFERROR(MID(A1,FIND("/",A1)+1,LEN(A1)-FIND("/",A1)),"")

Результаты:

Способ 2

  • Выберите свои данные
  • Перейти к данным
  • Вкладка «Инструменты данных»
  • Текст в столбцы
  • С разделителями — Далее
  • Другое: импортировать "/" в поле - Далее
  • Заканчивать

Результаты:

Только что понял, что эта формула не работает для Excel 2003. Есть ли другая формула, которую я могу использовать для этого?

hjh93 09.04.2019 11:43

какая у тебя проблема?

Error 1004 09.04.2019 11:46

#СТОИМОСТЬ! это то, что у меня есть для данных.

hjh93 09.04.2019 11:48

Получаете ли вы тот же результат с другими версиями Excel?

Error 1004 09.04.2019 11:53

Сейчас у меня есть только 2010 (то, что я использую для разработки) и 2003 (пользователь, который использует файл).

hjh93 09.04.2019 12:03

так в 2010 работает, а в 2003 нет? в 2016 и 2019 годах работает отлично.

Error 1004 09.04.2019 12:34

Возможно ли, что формула не поддерживается в 2003 году?

hjh93 10.04.2019 03:30

Итак, поискав в Интернете, я обнаружил, что «ЕСЛИОШИБКА» несовместим с Excel 2003. В итоге я использовал обходной путь: 1) =IF(ISERROR(LEFT(I1,FIND("/",I1)-1)),"", (LEFT(I1,FIND("/",I1)-1))) для левого числа 2) =IF(ISERROR(MID(I1,FIND("/",I1)+1,LEN(I1)-FIND("/",I1))), "", (MID(I1,FIND("/",I1)+1,LEN(I1)-FIND("/",I1)))) для правого числа.

hjh93 10.04.2019 10:34

Давайте продолжить обсуждение в чате.

Error 1004 10.04.2019 10:35

Другие вопросы по теме