1

У меня есть столбец непослушных данных, которые необходимо стандартизировать. Это один столбец, так что я просто включу его фрагмент здесь:

    pop_density_2010
    7002854600000000000854.6/sq mi (329.97/km2)
    70031416770000000001,416.77/sq mi (547.04/km2)
    70031051960000000001,051.96/sq mi (406.18/km2)
    70031822940000000001,822.94/sq mi (703.86/km2)
    70031297510000000001,297.51/sq mi (500.99/km2)
    70031285070000000001,285.07/sq mi (496.19/km2)
    70032087500000000002,087.5/sq mi (806.02/km2)
    7002133720000099999133.73/sq mi (51.64/km2)
    7002301560000000000301.56/sq mi (116.44/km2)
    70031003620000000001,003.62/sq mi (387.51/km2)
    7002593900000000000593.9/sq mi (229.31/km2)
    7002679689999900000679.68/sq mi (262.44/km2)
    7002368120000000000368.12/sq mi (142.14/km2)
    70031072369999999991,072.37/sq mi (414.06/km2)
    70031343750000000001,343.75/sq mi (518.84/km2)
    7002303640000000000303.64/sq mi (117.24/km2)
    70031465180000000001,465.18/sq mi (565.73/km2)
    7002987180000000000987.18/sq mi (381.17/km2)
    7002266330000099999266.33/sq mi (102.83/km2)
    7002235830000000000235.83/sq mi (91.06/km2)
    7002234160000000000234.16/sq mi (90.41/km2)
    7002208440000000000208.44/sq mi (80.48/km2)
    7002204020000000000204.02/sq mi (78.78/km2)
    7002808690000000000808.69/sq mi (312.25/km2)
    7002325910000000000325.91/sq mi (125.84/km2)
    7002697710000000000697.71/sq mi (269.4/km2)
    7002544740000000000544.74/sq mi (210.33/km2)

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

array.map{|x| x.split("sq mi (")[1].split("/km2")[0]}
#=> 329.97, 547.92, 406.18, ...

И я бы сделал. Но я не в среде программирования, так что сейчас это не совсем удобно.

Я хочу иметь возможность делать то же самое с Open Office или Excel, и не хочу использовать VB для этого, потому что я не знаю VB.

Если вы видите в коде, что он делает, это делит строку данной ячейки на массив фрагментов строки, разделенных по совпадению со строкой «sq mi(», захватывает вторую половину этого, затем делает то же самое только с строка "/ км2" и захватывает первую часть. Тогда у меня есть хороший простой номер, который я могу преобразовать в мили или что-то еще. Благодарю.

2 ответа2

1

Следующая формула извлечет число "km2" из строки, хранящейся в A1 .

=VALUE(LEFT(RIGHT(A1, LEN(A1)-FIND("sq mi (", A1)-6), FIND("/km2", RIGHT(A1, LEN(A1)-FIND("sq mi", A1)-6))-1))

Это очень похоже на вашу программу. Сначала он обрезает все до sq mi ( а затем обрезает все после (включая) /km2 . Вся формула заключена в функцию VALUE , чтобы преобразовать текст в число.

0

Вы можете использовать не программист, а пользовательский способ Excel :-) Итак, вы используете меню « Данные», а затем команду « Текст в столбцы» , используя опцию « Разделитель» . Вам нужно будет сделать это дважды:

  1. примените команду к первому столбцу и используйте ( качестве разделителя - вы получите следующий столбец, заполненный значениями ###.##/km2 ;
  2. примените команду к только что появившемуся столбцу и используйте / качестве разделителя - этот столбец будет очищен от /km2 , который переместится в следующий (третий) столбец.

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