Excel formülü: Ölçü birimlerinden sayıları bölme -

İçindekiler

Genel formül

=MAX(ISNUMBER(VALUE(MID(A1,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

Özet

Bir sayıyı birim değerinden ayırmak için birkaç işlevi temel alan bir formül kullanabilirsiniz: MAKS, ISAYI, DEĞER ve ORTA. Gösterilen örnekte, C5'teki formül şöyledir:

=MAX(ISNUMBER(VALUE(MID(B5,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

Not: Bunlar, referans ve yorum için buraya yerleştirilmiş, sabit kodlanmış bir dizi sabiti kullanan deneysel bir formüldür. Yalnızca tesadüfen test edilmiştir, bu nedenle kullanırsanız veya uyarlarsanız dikkatli olun.

Açıklama

Bazen birimleri doğrudan sayılarla karıştıran verilerle karşılaşırsınız (ör. 8km, 12v, 7,5saat). Ne yazık ki, Excel bu biçimdeki sayıları metin olarak değerlendirecek ve bu tür değerler üzerinde matematik işlemleri gerçekleştiremeyeceksiniz.

Bir sayıyı birim değerinden ayırmak için son sayının konumunu belirlemeniz gerekir. Bu konuma 1 eklerseniz, birim metninin başlangıcına sahip olursunuz. Bu formül, ölçü biriminin nerede başladığını bulmak için bu kavramı kullanır.

Gösterilen örnekte, C5'teki formül şöyledir:

=MAX(ISNUMBER(VALUE(MID(B5,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

Bu formül, B5'teki ilk 9 değeri her seferinde bir karakter olmak üzere çıkarmak için ORTA işlevini kullanır. Sonuç şuna benzer bir dizidir:

("8","0","v","","","","","","")

Daha sonra metin biçimindeki sayıları gerçek sayılara dönüştürmek için DEĞER işlevini kullanırız. Sonuç:

(8,0,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!)

Bu diziyi ISNUMBER üzerinden çalıştırarak şunları elde ederiz:

(TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)

Sonra bunu başka bir diziyle 9 sayı ile çarparak şunu elde edin:

(1,2,0,0,0,0,0,0,0)

Daha sonra en büyük değeri, yani "son sayının" konumu elde etmek için MAX kullanırız.

Son olarak, "birim başlangıç" konumunu elde etmek için konuma 1 ekleriz.

Son olarak, sayıları birimlerden ayırmak için bu konumu standart SOL ve SAĞ işlevleriyle kullanıyoruz:

=VALUE(LEFT(B5,C5-1)) // number =TRIM(RIGHT(B5,LEN(B5)-C5+1)) // unit

Sabit kodlu sayı dizisi sabitinin kolaylık sağlamak için bir hack olduğunu ve yalnızca 9 karakter uzunluğa kadar ham değerleri işleyeceğini unutmayın.

İyi bağlantılar

Rick Rothstein'ın MrExcel'deki formüllerinden ilham alındı

Ilginç makaleler...