Tutorial ini menyajikan 2 rumus macro Excel untuk mengalikan angka dalam teks di satu sel yang sama.
Contohnya seperti gambar berikut, dimana kita akan mengambil angka-angka dari sebuah sel yang juga berisi karakter lain (teks, koma, tanda kurung, dan sebagainya). Kemudian angka-angka tersebut akan dikalikan dan ditaruh di sel tersendiri.
Untuk itu, kita akan menggunakan macro VBA Excel untuk membuat User Defined Function (UDF).
Lihat juga tutorial ini: 2 Function Excel untuk Menjumlahkan Angka di Dalam Teks. Dimana kode macro tersebut digunakan untuk menjumlahkan angka dalam satu sel, serta menjumlahkan angka yang berada di beberapa sel.
Kode Macro VBA Excel Perkalian Angka dalam Teks (1)
Function MultiplyNumbers(str As String) As Double Dim values() As String Dim i As Integer ' Split the string by comma-space separator values = Split(str, ", ") ' Multiply the numeric values together MultiplyNumbers = 1 For i = 0 To UBound(values) If IsNumeric(Split(values(i), " ")(UBound(Split(values(i), " ")))) Then MultiplyNumbers = MultiplyNumbers * CDbl(Split(values(i), " ")(UBound(Split(values(i), " ")))) End If Next i End Function
Kode macro ini cocok untuk angka yang dipisahkan dengan koma dan spasi. Contoh:
- Lemon 12, Lime 5, Melon 20, Papaya 20, Banana 10
- Lemon 10, Lime 5, Melon 20, Papaya 20
Variasi format string dan hasil kalkulasi bisa dilihat pada gambar berikut.
Langkah-langkah menggunakan kode macro VBA Excel:
- Tekan tombol ALT + F11 untuk menampilkan layar editor Microsoft Visual Basic for Applications. Tips: Anda juga bisa membuka layar VBA dengan cara klik kanan tab worksheet dan pilih View Code.
- Kemudian pada tab Insert, klik Module. Akan muncul satu layar putih.
- Salin dan tempatkan kode di atas pada layar putih tersebut.
- Kemudian simpan dan tutup layar editor VBA.
- Selanjutnya kita akan menggunakan fungsi tersebut pada lembar kerja Excel. Klik pada sel yang akan diisi dengan hasil perkalian. Contoh, sel B2.
- Ketik fungsi =MultiplyNumbers(A2) seperti contoh pada gambar. Dimana A2 adalah sel yang berisi teks dan angka yang ingin Anda ekstrak dan dikalikan.
- Tekan ENTER. Sel B2 akan berisi hasil perkalian.
- Selanjutnya salin fungsi pada sel B2 ke sel di bawahnya.
- Terakhir simpan file dalam format Excel Macro-Enabled Workbook (.xlsm).
Kode Macro VBA Excel Perkalian Angka dalam Teks (2)
Function MultiplyNumbersTWO(str As String) As Double Dim values As Variant Dim i As Integer Dim match As Object ' Split the string by open bracket-space separator If InStr(str, " (") > 0 Then values = Split(str, " (")(1) values = Split(values, ")")(0) values = Split(values, " x ") End If ' Extract and multiply the numeric values together MultiplyNumbersTWO = 1 For i = 0 To UBound(values) Set match = CreateObject("vbscript.regexp") match.Pattern = "(\d+[\.,]?\d*)" If match.Test(values(i)) Then MultiplyNumbersTWO = MultiplyNumbersTWO * CDbl(match.Execute(values(i))(0)) Else MultiplyNumbersTWO = 0 Exit Function End If Next i End Function
Kode 2 ini khusus untuk angka-angka yang berada di dalam tanda kurung dan dipisahkan dengan tanda ” x “.
Contoh:
- Belanja makan minum (50 Org x 3 keg x 3 Kali makan x 5 Hari)
- Biaya Operasional (50 Org x 3 Keg x 5 Hari)
Lebih jelasnya bisa dilihat pada gambar berikut.
Untuk menggunakan fungsi ini, Anda dapat mengikuti langkah yang sama seperti pada Macro 1 di atas, yaitu:
- Copy paste kode macro ke dalam modul VBA di lembar kerja Excel Anda. Tips: kode dapat ditaruh di bawah kode macro yang pertama.
- Lalu gunakan fungsi tersebut di sel lembar kerja Anda dengan mengetikkan =MultiplyNumbersTWO(A2) seperti contoh pada gambar. Dimana A2 adalah sel yang berisi teks dan angka yang ingin Anda ekstrak dan kemudian dikalikan.
- Akhiri dengan menekan ENTER.
- Kemudian salin fungsi ke sel di bawahnya.
Penutup
Demikian 2 rumus VBA Excel untuk mengekstrak dan mengalikan angka dalam sel yang juga berisi teks dan tanda lainnya.
Lihat juga: Cara Menambahkan Teks di Depan dan Belakang Angka Excel, bila Anda ingin memberi keterangan unit dan sebagainya pada angka yang tetap dapat dikalkulasi.