Làm sao chèn được ngày đầu tháng và cuối tháng vào trong một khoảng thời gian

  • Thread starter Thread starter 597335
  • Ngày gửi Ngày gửi
Liên hệ QC

597335

Thành viên hoạt động
Tham gia
19/2/12
Bài viết
126
Được thích
29
Em cần chia khoảng thời gian ra nhiều đoạn dựa vào ngày đầu và ngày cuối của mỗi tháng. Em ví dụ
Nội dung của ô A1: Từ ngày 01/01/2012 đến ngày 02/02/2012

Do nó chạy qua cả tháng 1 và tháng 2 nên em phải tách riêng ra nhiều đoạn (mỗi đoạn chỉ nằm trọn vẹn trong một tháng thôi), nghĩa là ô A1 sẽ được tách ra làm 2 ô (minh họa theo file đính kèm là C2 và C3):

Nội dung ô C2: Từ ngày 01/01/2012 đến ngày 31/01/2012
Nội dung ô C3: Từ ngày 01/02/2012 đến ngày 02/02/2012

Nôm la từ 1 cái tách ra làm 2:
(Từ ngày 01/01/2012 đến ngày 02/02/2012 <=> Từ ngày 01/01/2012 đến ngày 31/01/2012 + Từ ngày 01/02/2012 đến ngày 02/02/2012)

Em xin minh họa theo file đính kèm, cột đầu vào là cột A, cột đầu ra là cột C
 

File đính kèm

Em cần chia khoảng thời gian ra nhiều đoạn dựa vào ngày đầu và ngày cuối của mỗi tháng.

Nếu chấp nhận xoay DATA ra cột,
thì dùng công thức như trong file kèm

Bấm Ctrl+F3 để xem 2 NAME

PHP:
DateBe:      =+DATE(TRIM(LEFT(TRIM(MID(SUBSTITUTE(Sheet1!A$1,"/",REPT(" ",255)),2*255+1,255)),4)),TRIM(MID(SUBSTITUTE(Sheet1!A$1,"/",REPT(" ",255)),256,255)),TRIM(RIGHT(TRIM(MID(SUBSTITUTE(Sheet1!A$1,"/",REPT(" ",255)),1,255)),2)))

PHP:
DateEn:     =+DATE(TRIM(MID(SUBSTITUTE(Sheet1!A$1,"/",REPT(" ",255)),4*255+1,255)),TRIM(MID(SUBSTITUTE(Sheet1!A$1,"/",REPT(" ",255)),3*255+1,255)),TRIM(RIGHT(TRIM(MID(SUBSTITUTE(Sheet1!A$1,"/",REPT(" ",255)),2*255+1,255)),2)))

trong file kèm
 

File đính kèm

HOẶC Phương án rút gọn

Nếu chấp nhận xoay DATA ra cột,
thì dùng công thức như trong file kèm

HOẶC Phương án rút gọn NAME như sau, cho cải tiến hơn
Dùng 3 NAME như sau
PHP:
myStr:      =SUBSTITUTE(Sheet1!A$1,"/",REPT(" ",255))
PHP:
DateBe:      =+DATE(TRIM(LEFT(TRIM(MID(myStr,2*255+1,255)),4)),TRIM(MID(myStr,256,255)),TRIM(RIGHT(TRIM(MID(myStr,1,255)),2)))
PHP:
DateEn:      =+DATE(TRIM(MID(myStr,4*255+1,255)),TRIM(MID(myStr,3*255+1,255)),TRIM(RIGHT(TRIM(MID(myStr,2*255+1,255)),2)))


Ctrl+F3 để xem và hiệu chỉnh các NAME trên
 

File đính kèm

Lần chỉnh sửa cuối:
Công thức trông khủng quá, nhưng theo em hiểu mục đích của tác giả muốn tất cả kết quả chỉ nằm ở trong 1 cột C thôi (minh họa ở file đính kèm).
 
Công thức trông khủng quá, nhưng theo em hiểu mục đích của tác giả muốn tất cả kết quả chỉ nằm ở trong 1 cột C thôi (minh họa ở file đính kèm).

Đúng thế, nhưng trên cũng đã nói là "Nếu chấp nhận xoay cột",

Nếu như tác giả yêu cầu, thì công thức chắc khủng hơn nữa

Dù sao đây cũng chỉ là 1 giải pháp tạm chấp nhận
 
Web KT

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

Back
Top Bottom