Làm thế nào để lập công thức excel tính cước phí điện thoại!

Liên hệ QC

nirvana842005

Thành viên mới
Tham gia
6/11/07
Bài viết
13
Được thích
2
Chào mọi người!
Có anh chị nào biết chỉ giúp em vấn đề này với. Hiện em đang gặp khó khăn trong việc lập công thức excel để tính cước điện thoại. Làm thế nào để cắt lọc tất cả các mã vùng của các số điện thoại? (Có đến mấy trăm mã vùng của các quốc gia trên thế giới). Em đã thử dùng hàm left để cắt mã vùng rồi dùng hàm vlookup để dò tìm tính cước nhưng không có hiệu quả. Các anh chị xem qua file đính kèm dưới đây nhé.
Thanks all,
Huynh Diep
 

File đính kèm

Không biết cột mã vùng của bạn ở đâu (Bạn dùng hàm left lấy số liệu ở cột nào thế?"
 
Ý bạn có phải căn cứ vào số thuê bao được gọi truy ra mã vùng, từ đó áp cước cho cuộc gọi phải không....chà... hơi bị phức tạp đấy, không thể dùng hàm Left ở đây được vì số ký tự mã vùng không quy chuẩn...hơn nữa các cuộc gọi cũng không theo một quy luật nhất định, chẳng hạn các cuộc gọi thông qua dịch vụ 171 thì mã vùng lại nằm sau số 171. Xin hỏi thêm bạn một chút, những cuộc gọi, vd như: 6022, 8000 có phải cuộc gọi nội địa không? vì tìm trong mã không thấy có mã 6022...??? Tôi nghĩ với thông tin chỉ là số được gọi đến không giải quyết được bài toán này của ban...
 
Lần chỉnh sửa cuối:
Làm thế nào để lập công thức excel tính cước điện thoại

Chào bạn!
Cảm ơn vì đã góp ý giúp đỡ mình. Quay trở lại vấn đề này, mình xin đưa thêm một số thông tin nữa: các số như: 8201, 6022..>> là những số extension (số đt nội bộ), còn các mã nằm đầu như: 171 không phải là dịch vụ 171, mà đó là mã vùng của Mỹ (1 + ...số đt ở đằng sau). Đúng là mình muốn lấy source các cuộc gọi chi tiết của khách hàng để tách mã vùng rồi dùng hàm tính cước, nhưng chưa tìm ra được giải pháp nào cả. Thường thì phải mua phần mềm tính cước tự động, nhưng ở đây mình chỉ dùng hàm và làm các thao tác thủ công thôi. Các bạn biết thì xin chỉ giúp mình xem có cách nào khác không? Những số đt nội bộ mình có thể tách ra bỏ vào sheet khác để làm riêng. Vấn đề là làm sao có thể dùng excel để tính cước điện thoại?
Thanks
Huynh Diep
 
Chào bạn. Nhiệm vụ chính ở đây là phân biệt được mã vùng dựa trên số điện thoại được gọi, trong trường hợp của bạn mình nói khó là vì nó quá đa dạng, bạn thấy không, có những mã nước có 3 mã vùng có giá cước khác nhau, Bangladesh chẳng hạn, vậy thì bài toán bây giờ không thể dùng một mình mã nước mà phải cả mã vùng nữa, tuy nhiên là khó chứ không phải là không có giải pháp, xin hỏi thêm list cuộc gọi bạn update tự động hay copy từ nguồn nào, có thể sửa mã nước cho phù thuân tiện trong việc tính cước không (vì mã này chỉ dành riêng cho bạn) cần phải sửa mã cho phù hợp với list cuộc gọi mà bạn nhận được , VD Ecuador-Quito có mã 593 2 có thể sửa thành 5932, tất cả phải đưa về 1 cái chuẩn thì mới áp dụng được cho những nước khác được. Trên đây là ý kiến riêng của tôi, còn rất nhiều đại cao thủ đang sẵn lòng giúp bạn, hãy cập nhật thông tin đầy đủ nhất trong file của bạn. Thân !
 
Tôi có 2 phát hiện trong file này:
Thứ nhất: tôi có cảm giác rằng phải convert number to text thì mới tính dc
Thứ hai: Tại sao trong bảng MA VUNG của bạn lại có mã trùng? Ví dụ: Mã 1 vừa là USA vừa là Canada, vậy khi người ta gọi số có mã =1 thì biết em nào là USA, em nào là Canada?
 
...và khó hơn nữa nếu trùng mã với những anh có đầu 1, 1340..1690 chẳng hạn. Bác Tuấn đã có giải pháp nào hay chưa vậy...?
 
Dialing code của:
United states, Nanada và navassas Island đúng là 1 bạn anhtuan à.
 
Làm thế nào để lập công thức excel tính cước điện thoại

Hi ban!
List các cuộc gọi của khách hàng mình lấy source từ hệ thống CDR (báo chi tiết các cuộc gọi của khách hàng) của công ty mình. Mình copy từ hệ thống sang file excel. Còn bảng giá và mã vùng ban đầu chỉ có mã quốc gia mà thôi, từ các mã quốc gia đó mình vào google search tìm chi tiết các mã vùng cần thiết. Trên bảng giá đó đã có các mã vùng kèm theo mã quốc gia rồi. Vd: Mã quốc gia của Bangladesh là 880 mình đã ghi thêm mã vùng địa phương đằng sau đó là: 880 31, 880 2 ... >> ở đây có thể viết liền nhau: 88031, 8802 như ý bạn đã nói. Điều kiện đặt khoảng cách hay không là do mình chứ không có qui luật nào cả. Nếu để dùng hàm tính toán thì phải viết liền nhau. Bạn chỉ giúp thêm mình phần này nhé.
Thanks
Huynh Diep
 
phamnhukhang đã viết:
...và khó hơn nữa nếu trùng mã với những anh có đầu 1, 1340..1690 chẳng hạn. Bác Tuấn đã có giải pháp nào hay chưa vậy...?
Chết là ở chổ đó đó... chứ lúc đầu tôi cũng nghĩ ra 1 cách "bùn": Dùng LEFT tách 1 ký tự rồi dò, nếu ko tìm dc thì tách 2 ký tự,.. ko dc nữa thì tách 3 ký tự... vân vân (hình như 6 ký tự là lớn nhất trong MA VUNG)...
Thế nhưng thằng có mã 1304 mà làm thế có khi nó "tưởng" em đó mã 1 chứ ko phải mã 1304... Hic...
Quay trỡ lại vấn đề: Tôi chợt nghĩ làm sao tổng đài điện thoại có thể biết dc chính xác số ta đang gọi là đến nước nào nhỉ? Đại khái nó cũng có cách gì đó đễ biết mã vùng chứ? Thuật toán cũa nó là gì? Nếu ta biết dc giãi thuật này thì xem như bài toán đã giãi xong!
 
Lần chỉnh sửa cuối:
Như bác Tuấn nói thì bác dò từ to đến nhỏ được không bác
 
nirvana842005 đã viết:
Hi ban!
List các cuộc gọi của khách hàng mình lấy source từ hệ thống CDR (báo chi tiết các cuộc gọi của khách hàng) của công ty mình. Mình copy từ hệ thống sang file excel. Còn bảng giá và mã vùng ban đầu chỉ có mã quốc gia mà thôi, từ các mã quốc gia đó mình vào google search tìm chi tiết các mã vùng cần thiết. Trên bảng giá đó đã có các mã vùng kèm theo mã quốc gia rồi.
Huynh Diep
Ok như vậy là list là bất di bất dịch, không ai dại gì mà động vào nó cả, và việc còn lại là sửa lại mã cho phù hợp và tìm giải pháp tính cước, bạn chú ý đính chính lại các mã: 1, 7, 45 trùng mã nhưng có giá cước khác nhau.
 
salam đã viết:
Như bác Tuấn nói thì bác dò từ to đến nhỏ được không bác
Định là vậy.. nhưng sẽ bị sai lầm... vì 1 số có các chử số đầu là 1340 thì ngay từ đầu dò tìm nó sẽ "hiểu lầm" là 1 chứ ko phải 1340... LEFT(cell,1) là ra ngay kết quả rồi.. lấy đâu có cơ hội dò tiếp
 
Theo tôi bạn có thể giải quyết theo hướng sau:
* Bạn dùng hàm LEN để xác định tại cột (số gọi) có độ dài là bao nhiêu. vd : tại cột D6 14083495080 độ dài của chuỗi là 11 thì bạn có thể biết là cuộc ngoại quốc tế sau đó dùng hàm left để tra mã vùng sau, tại ô D2 độ dài của chuỗi là 4 thí bạn biết ngay là mạng nội bộ rồi đúng không

Bạn có thể cho mình biết một số cuộc gọi tại các nước khác thêm được không
 
TUAN.IT đã viết:
Theo tôi bạn có thể giải quyết theo hướng sau:
* Bạn dùng hàm LEN để xác định tại cột (số gọi) có độ dài là bao nhiêu. vd : tại cột D6 14083495080 độ dài của chuỗi là 11 thì bạn có thể biết là cuộc ngoại quốc tế sau đó dùng hàm left để tra mã vùng sau, tại ô D2 độ dài của chuỗi là 4 thí bạn biết ngay là mạng nội bộ rồi đúng không
Cũng đang có hướng giống như bạn nói... Tuy nhiên ta phải biết dc thật chi tiết về các số quốc tế, chẳng hạn nước nào thì có số bao nhiêu ký tự.. vân vân...
Cái này tôi thật sự ko rành... có lẽ tác giả bài biết nên cung cấp thật tỉ mĩ về các chi tiết liên quan này... Cũng chưa dám hứa có thể giúp dc.. nhưng là.. cầu may.. Biết đâu...
 
Khách hàng chủ yếu gọi đi Mỹ, nên trên hệ thống chỉ hiển thị các cuộc gọi của khách hàng phần lớn là gọi đi Mỹ thôi. Nhưng nếu sau này có thể có nhiều khách hàng nữa gọi đi các nước khác thì mình cũng phải tính được. Vì thế, mình chỉ có thể đặt thêm những cuộc gọi tùy ý của các nước khác nhau để làm ví dụ thử dùng hàm thôi. Về phần mã quốc gia và mã vùng địa phương thì chỉ có danmark là mình chưa tìm ra được mã địa phương của vùng Danmark-Copenhagen, còn lại những mã khác có giá giống nhau nên mình không tra tìm mã vùng. Mình cũng không biết được mỗi quốc gia qui định độ dài ký tự của số điện thoại là bao nhiêu? và để tra tìm vấn đề này thì phải mất rất nhiều thời gian, cũng không biết là có tìm được hay không?

 
Lần chỉnh sửa cuối:
anhtuan1066 đã viết:
... làm sao tổng đài điện thoại có thể biết dc chính xác số ta đang gọi là đến nước nào nhỉ? Đại khái nó cũng có cách gì đó đễ biết mã vùng chứ? Thuật toán cũa nó là gì? Nếu ta biết dc giãi thuật này thì xem như bài toán đã giãi xong!
Hình như list cuộc gọi đến nó đã chặt ra từng khúc ra rồi bác ạh...nên việc phân biệt mã vùng nó giải quyết ngon lành. Bác thử để ý hoá đơn thanh toán tiền điện thoại mà xem.
 
Theo mình nghỉ thì tổng đài điện thoại tính cước bằng cách dùng phần mềm khác chứ không phải dùng excel. Và những phần mềm này được các kỹ sư thiết lập theo chương trình nào đó. Mình cũng được sử dụng phần mềm tính cước tự động đó rồi, mình không rành lắm nhưng hình như nó được viết bằng chương trình gì đó rất hay mà không phải ai cũng làm được.
 
Đây là một bài toán khó (đối với mình). Nếu các bạn có giải pháp nào hay thì nghiên cứu chỉ giúp mình với nhé. Thật ra thì cũng không bắt buộc vì đây là bài toán thử nghiệm đối với mình trong tương lai thôi. Còn công việc này ở công ty mình đã có kế toán billing và các Sếp làm rồi. Cũng sắp đến giờ nghỉ làm việc rồi, mình cũng chuẩn bị về, hẹn gặp lại các bạn hôm sau nhé. Cảm ơn tất cả mọi người đã góp ý và đưa ra những giải pháp giải quyết khó khăn giúp đỡ mình. Chúc mọi người vui vẽ. Bibi
 
Em nghĩ ở đây hệ thống tổng đài dùng thuật toán rẽ nhánh, giống như mình tra tín hiệu Morse vậy.

bạn bấm số 0 --------------> (à, tên này chuẩn bị quốc tế, liên tỉnh, di động)
bạn bấm tiếp số 0 ---------> (tên này gọi quốc tế, chắc rồi!)
bạn bấm tiếp số 1 ---------> (tên này gọi đi mỹ, tính tiền gọi đi Mỹ cho nó)
bạn bấm tiếp số 9 ---------> (tên này gọi di động, chắc rồi!)
bạn bấm tiếp số 5 ---> (tên này gọi sfone, giá Sfone áp vào!)
.......

Chả biết phải không, em đoán thế, tuy nhiên nếu mà như thế thì làm bằng công thức Excel thì hơi căng à nha!!! VBA thôi, hè hè!!!
 
Web KT

Bài viết mới nhất

Back
Top Bottom