Витяг і SUM числа з рядка


2

Я переглянув подібні питання до цього, але не зміг знайти точного рішення моєї проблеми. Якщо є дублікат, який може це вирішити, я закрию це питання.

У комірці A1 я міг би мати рядок, який завжди буде складатися з числа, коми, числа тощо.

Може бути кілька чисел, завжди розділених комою.

Наприклад:

12,12,10,10

або

12,12,1

У комірці B1 я хотів би підсумувати числа, тому я отримав би результат 44або 25.

Як я можу цього досягти?

Єдине, що я міг би спробувати спробувати, - це використовувати «Текст до стовпців», але це своєрідне змішування зі структурою робочої книги, оскільки для цього потрібно використовувати більше стовпців. Я сподівався на формулу, яку я міг би просто увійти до B1 і, якщо можливо, перетягнути вниз.


Використовуйте просту функцію, визначену користувачем. Розділіть своє текстове значення на рядковий масив за допомогою делеметра комами та обчисліть суму елементів масиву, перетворених на числа.
Акіна

@Akina Я поняття не маю, як почати займатися цим lol
PeterH

Відповіді:


1

Я поняття не маю, як почати це робити

  • Відкрийте файл Excel.
  • Натисніть Alt-F11, відкриється вікно редактора VBA.
  • У меню виберіть пункт Вставити модуль, відкриються нові вікна модуля.
  • Вставте наведений нижче код у вікно модуля:

    Public Function ParseAndSum(source As String) As Integer
    Dim tmp() As String, i As Integer
    tmp = Split(source, ",")
    For i = LBound(tmp) To UBound(tmp)
        ParseAndSum = ParseAndSum + Val(tmp(i))
    Next i
    End Function
    
  • Закрийте редактор VBA.

  • Виберіть пункт призначення (наприклад, B1).
  • Натисніть кнопку "функція" (fx), відкриється вікно "Функція".
  • Виберіть категорію "Визначені користувачем функції", виберіть функцію ParseAndSum, натисніть кнопку Далі.
  • Клацніть на вихідну комірку (A1), її адреса вставляється у поле джерела.
  • Натисніть кнопку ОК.

Це все.

PS. Не забудьте включити виконання макросів у налаштуваннях Excel.


Спасибі ! Я спробую навчитися з цього, як почати створювати для себе
АДС

@PeterH Пам'ятайте - функція доступна лише в цьому файлі. Щоб використовувати його в іншому файлі, ви повинні зробити все вищезазначене і в іншому файлі.
Акіна

2

Це можна зробити за допомогою формули:

=SUMPRODUCT(--TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),(ROW($A$1:INDEX(A:A,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))-1)*99+1,99)))

Це розділяє на частини ,і повторює їх і підсумовує їх.

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


що вражає
PeterH

0

Інший спосіб, як це можна зробити, і як на нього традиційно відповідають, - це скористатися командою зі "старого" набору макросів Excel 4.

ВИ ОБОВ'ЯЗКОВО використовувати ці команди в названих діапазонах (або макроси, але зазвичай люди шукають не макро-рішення).

У цьому рішенні є два аспекти. Перший полягає лише в тому, як робити основи:

(Ваші дані знаходяться в комірці А1, і ваш результат буде вказаний у комірці B1)

Встановіть іменований діапазон (можливо, його називають "Результат"). Дайте формулу:

=EVALUATE(SUBSTITUTE(A1,",","+"))

Потім використовуйте Іменований діапазон у формулі в комірці B1: = Результат

У формулі SUBSTITUTE () використовується "нормально", щоб змінити коми для знаків плюс, які знадобляться для роботи EVALUATE (). EVALUATE () - це макрокоманда Excel 4 і зробить саме це: оцініть все, що він може розпізнати як формулу (саме тому потрібні коми замінені).

Причина, яку він повинен використовувати у названому діапазоні, є дещо загадковою. Вони не працюватимуть безпосередньо, набраними у клітинки електронної таблиці. Вони будуть працювати у фактичних макросах. Тож думка полягала б у тому, що названі діапазони повинні розглядатися Excel як версія ("зручна" версія, будьте впевнені) макросів, при цьому їх робота виконується макромеханікою, а не механізмом обчислення аркушів.

Другий аспект полягає в тому, як отримати формулу для позначення "осередку зліва від клітини, я хочу результат" ...

Виберіть комірку A2 та введіть формулу, як описано вище. Введіть формулу (скопіюйте та вставте, введіть, як вам подобається) та збережіть її. Перевірте формулу після встановлення названого діапазону і переконайтесь, що немає "$" для посилання на комірку (ви хочете, щоб "A1" НЕ була будь-яка версія "$ A $ 1").

Все готово. Тепер, де завгодно на вашому аркуші, "= Результат" буде посилатися на клітинку зліва зліва. Тож скопіюйте його в стовпчик B, або все, що може бути корисним, і воно буде працювати на клітинку до вмісту зліва.

Ви ДОБРО повинні отримати другу частину правильно, але це легко, так?

Зробіть пошук макрокоманд Excel 4, і ви знайдете всю наявну мануал, щось на зразок 600 сторінок, і там є кілька дорогоцінних каменів, хоча деякі з них були надані нам у нових функціях протягом багатьох років.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.