Hỏi nhanh - đáp nhanh

Liên hệ QC
Status
Không mở trả lời sau này.
Xoay Dọc Dữ Liệu

Xin chào GPE!

Em có 1 bảng Dữ liệu hiện đang phân bổ theo hàng ngang. Nay em muốn dùng VBA để xoay dọc lại.

Anh chị xem file và hướng dẫn giúp em đoạn Code cho bài này!

Chân thành cám ơn

Thân!
 

File đính kèm

  • Book1.xls
    20.5 KB · Đọc: 10
Bạn dùng vòng lặp để xác định thôi. Bạn xem file đi.
PHP:
Sub trans()
nam = [B1]
thang = [B2]
k = 5
For iRow = 6 To [A65000].End(xlUp).Row
For iCol = 2 To 7
    If Cells(iRow, iCol) <> "" Then
    Cells(k, "I") = Cells(iRow, 1)
    Cells(k, "J") = thang & "/" & Cells(5, iCol) & "/" & nam
    Cells(k, "J").NumberFormat = "d/mmm/yy"
    Cells(k, "K") = Cells(iRow, iCol)
    k = k + 1
    End If
Next
Next
End Sub
Thân.
 

File đính kèm

  • Book1.xls
    36.5 KB · Đọc: 10
Bạn dùng vòng lặp để xác định thôi. Bạn xem file đi.
PHP:
Sub trans()
nam = [B1]
thang = [B2]
k = 5
For iRow = 6 To [A65000].End(xlUp).Row
For iCol = 2 To 7
    If Cells(iRow, iCol) <> "" Then
    Cells(k, "I") = Cells(iRow, 1)
    Cells(k, "J") = thang & "/" & Cells(5, iCol) & "/" & nam
    Cells(k, "J").NumberFormat = "d/mmm/yy"
    Cells(k, "K") = Cells(iRow, iCol)
    k = k + 1
    End If
Next
Next
End Sub
Thân.
Tôi chỉnh lại Sub này như sau:
PHP:
Sub trans()
  Dim i As Long, Clls As Range
  On Error GoTo Thoat
  With Application.InputBox("Chon vung du lieu (khong tinh tieu de)", Type:=8)
    [I5:K1000].ClearContents
    For i = 1 To .Rows.Count
      If .Cells(i, 2).Resize(, .Columns.Count - 1).SpecialCells(4).Count + 1 < .Columns.Count Then
        For Each Clls In .Cells(i, 2).Resize(, .Columns.Count - 1).SpecialCells(2)
          Range("I65536").End(xlUp).Offset(1) = .Cells(i, 1)
          Range("K65536").End(xlUp).Offset(1) = Clls
          With Range("J65536").End(xlUp).Offset(1)
            .Value = DateSerial([B1], [B2], Clls.Offset(-i))
            .NumberFormat = "d/mmm/yy"
          End With
        Next Clls
      End If
    Next i
  End With
Thoat:   Exit Sub
End Sub
- Dùng SpecialCells(2) để giãm số lần duyệt trong vòng lập
- Ngoài ra, nếu cột tiêu đề của bạn là ngày tháng năm đàng hoàng thì có thể dùng PasteSpecial\Transpose ---> Giãm được 1 vòng lập
 

File đính kèm

  • Transfer_ndu.xls
    23.5 KB · Đọc: 10
Lần chỉnh sửa cuối:
Để tôi thí nghiệm cho bạn thấy, nếu tiêu đề là ngày tháng năm thì code sẽ ngắn vì không phải tốn công "ráp" ngày tháng, giãm bớt 1 vòng lập ---> Tốc độ nhanh hơn rất nhiêu
PHP:
Sub Transfer()
  Dim i As Long
  On Error GoTo Thoat
  With Application.InputBox("Chon vung du lieu (khong tinh tieu de)", Type:=8)
    [I5:K1000].ClearContents
    For i = 1 To .Rows.Count
      If .Cells(i, 2).Resize(, .Columns.Count - 1).SpecialCells(4).Count + 1 < .Columns.Count Then
        With .Cells(i, 2).Resize(, .Columns.Count - 1).SpecialCells(2)
          Union(.Cells, .Offset(-i)).Copy
        End With
        Range("J65536").End(xlUp).Offset(1).PasteSpecial 3, , , True
        Selection.Resize(, 1).Offset(, -1).Value = .Cells(i, 1)
      End If
    Next i
  End With
  Application.CutCopyMode = False
Thoat:   Exit Sub
End Sub
 

File đính kèm

  • Transfer_ndu_02.xls
    23.5 KB · Đọc: 11
Định dạng Dữ liệu

Em muốn viết 1 đoạn code để định dạng File sau.
Nhưng phần Subtotals ko biết làm như thế nào

Sau này Nếu em thêm đối tác thì cũng sẽ tự động Subtotals. Các anh chị hướng dẫn giúp em.

Em cám ơn
Thân!

Em đã tìm ra cách làm. Cám ơn mọi người nhiều nhé!
 
Lần chỉnh sửa cuối:
Đếm Ký Tự

Anh chị cho em hỏi bài toán như sau:

Em dùng hàm Countif() để đếm xem co bao nhiêu "GPE" trong cột A.
Nhưng chỉ có thể đếm được "GPE" đứng 1 mình, còn "ăn GPE" or "ngủ GPE" ... thì ko đếm được.

Vậy dùng công thức nào để đếm tất cả các chữ "GPE" trong cột A?
 

File đính kèm

  • Countif.xls
    13.5 KB · Đọc: 19
Anh chị cho em hỏi bài toán như sau:

Em dùng hàm Countif() để đếm xem co bao nhiêu "GPE" trong cột A.
Nhưng chỉ có thể đếm được "GPE" đứng 1 mình, còn "ăn GPE" or "ngủ GPE" ... thì ko đếm được.

Vậy dùng công thức nào để đếm tất cả các chữ "GPE" trong cột A?

Bạn dùng công thức sau:

PHP:
=COUNTIF(A1:A17;"*GPE*")

Nhưng chỉ có 17 thôi, chứ lấy ra đâu KQ là 18 vậy bạn?
 
Anh chị cho em hỏi bài toán như sau:

Em dùng hàm Countif() để đếm xem co bao nhiêu "GPE" trong cột A.
Nhưng chỉ có thể đếm được "GPE" đứng 1 mình, còn "ăn GPE" or "ngủ GPE" ... thì ko đếm được.

Vậy dùng công thức nào để đếm tất cả các chữ "GPE" trong cột A?
Dùng công thức này:
PHP:
B1 = (LEN(A1)-LEN(SUBSTITUTE(A1,"GPE","")))/LEN("GPE")
Copy down công thức xuống dưới, sau đó Sum tất cả cột B lại là xong!

Còn nếu chỉ muốn hiện số tổng cộng vào 1 ô duy nhất thì làm công thức sau:
PHP:
=SUMPRODUCT((LEN($A1:$A17)-LEN(SUBSTITUTE($A1:$A17,"GPE","")))/LEN("GPE"))

Lưu ý:
LEN("GPE") có thể thay bằng số 3 cho gọn, mình vẫn để nguyên là LEN("GPE") để các bạn hiểu bản chất của số chia này!
 
Lần chỉnh sửa cuối:
Bạn dùng công thức sau:

PHP:
=COUNTIF(A1:A17;"*GPE*")

Nhưng chỉ có 17 thôi, chứ lấy ra đâu KQ là 18 vậy bạn?

Đúng ra phải là 20 mới đúng, công thức của cop_kh chưa đúng ở chỗ, nếu ô đó có hai chữ "GPE" (ví dụ ô A3, A8, A13) nó vẫn đếm là một!
 
Chính xác là 20
Em biết cách tính của anh ca_dafi nhưng trước giờ em vẫn nghĩ hàm len() chỉ đếm được ký tự trong ô.

Ai ngờ đếm được cả mảng +-+-+-+

Chân thành cám ơn các anh!
 
Nguyên tắc của ca_dafi là sau khi thay thế GPE bằng khoảng trống (chiều dài ký tự là 0) thì số chênh lệch chiều dài chính là số GPE xuất hiện (chiều dài là 3 nên chia cho 3). Có thể dùng cách khác là thay thế GPE bằng một chuỗi có chiều dài là 2 tùy ý thì chênh lệch chiều dài là số GPE xuất hiện.

Ví dụ:
B1 = =LEN(A1)-LEN(SUBSTITUTE(A1,"GPE","xx"))
 
Nguyên tắc của ca_dafi là sau khi thay thế GPE bằng khoảng trống (chiều dài ký tự là 0) thì số chênh lệch chiều dài chính là số GPE xuất hiện (chiều dài là 3 nên chia cho 3). Có thể dùng cách khác là thay thế GPE bằng một chuỗi có chiều dài là 2 tùy ý thì chênh lệch chiều dài là số GPE xuất hiện.

Ví dụ:
B1 = =LEN(A1)-LEN(SUBSTITUTE(A1,"GPE","xx"))
Vậy tổng quát công thức này sẽ là:
PHP:
=SUMPRODUCT(LEN(Vung)-LEN(SUBSTITUTE(Vung,Từ cần tìm,REPT("x",LEN(Từ cần tìm)-1))))
chưa chắc đã ngắn hơn bản gốc
PHP:
=SUMPRODUCT(LEN(Vung)-LEN(SUBSTITUTE(Vung,Từ cần tìm,"")))/LEN(Từ cần tìm)
 
Format Dữ liệu với Wrap text

Xin chào GPE!

Em có 1 File dữ liệu muốn Format về dạng Wrap text. Nếu làm tay thì cực quá.
Anh chị cho em xin đoạn code để tự động Format data theo Wrap text.

Em cám ơn!
 

File đính kèm

  • Wrap text.xls
    14 KB · Đọc: 12
Lỗi #VALUE là lỗi giá trị đó. Bạn kiểm tra lại kỹ xem công thức của bạn nha
 
Anh chị ơi giúp em với:
Em có bảng thu - chi tiền mặt bị báo lỗi công thức "#VALUE!". Lỗi này là bị làm sao ạ
Lỗi này là lỗi về biến, có thể có do áp dụng sai công thức,hoặc ô tính làm việc định dạng ở dạng text chứ không phải dạng number
 
Anh chị ơi, giúp em với!
Em muốn chuyển từ dạng text thành dạng date có được không ạ?
Nếu được chỉ giúp em với nha!
Cám ơn anh chị nhiều!
 
Anh chị ơi, giúp em với!
Em muốn chuyển từ dạng text thành dạng date có được không ạ?
Nếu được chỉ giúp em với nha!
Cám ơn anh chị nhiều!
Bạn nên đưa cụ thể dữ liệu mình muốn xử lý thì mọi người mới có hướng giải quyết cho bạn được.
 
Chào các bác, em là thành viên mới. Muốn hỏi các bác 1 lỗi sau trong Excel 2003.

Cứ mỗi lần vào Excel, mở file thứ 2 trở lên là Excel tự động đóng chương trình là và hiện ra thông báo sau:



Rất ức chế mà em chưa biết lỗi gì. Nhất là khi làm việc bắt buộc mình phải mở ít nhất 2 files. Điều này tưởng chừng như đơn giản nhưng mà trên máy của em thời gian gần đây đó là điều không thể. Em đã remove toàn bộ Office rồi install lại mà vẫn không được. Em không hiểu lỗi gì và phải làm thế nào nữa. Mong các bác giúp em cách khắc phục.

Xin cảm ơn!
 
Có một bạn hỏi tôi như sau:
Khủng Long ham ăn đã viết:
Chào Anh Tường hIện tại em dang co 1 file excel dung luong khoảng 21 MB, không biết làm sao để giảm xuống, mỗi lần mở file đều nhận được thông báo "not enough resource to display" hoài. Rất mong được Anh chỉ giúp làm sao để khắc phục lỗi đó bây giờ, vì dung lượng file quá lớn nên không thể gửi kèm được, có cách nào để post lên không??

Thân chào​
Tôi thì chịu. Nhờ các bạn trả lời giúp.
 
Các bạn gửi file lên diễn đàn đi. Hoặc nếu gửi không được thì gửi vào trang www.mediafire.com đó.
Sao đó chép link Download lên đây.
Thân.
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom