Hỏi nhanh - đáp nhanh về công thức (phần 1)

Liên hệ QC
Status
Không mở trả lời sau này.
Cải tiến thêm 1 bước nữa, có lẽ nhanh hơn 1 chút do vòng lập For không quét hết chuổi (gặp Number thì Exit For ngay)
PHP:
Option Explicit
Sub Tach()
   Dim Rng As Range, Clls As Range
   Dim i As Integer, K As Integer
   Dim iText As String, Temp1 As String, Temp2 As String
   Application.ScreenUpdating = False
   [C1].CurrentRegion.ClearContents
   [A1].CurrentRegion.Copy Destination:=[C1]
   Set Rng = Range("C2:C" & [C1000].End(xlUp).Row)
   Rng.TextToColumns Destination:=[C2], DataType:=xlDelimited, Other:=True, OtherChar:="|"
   [C1].ClearContents
   For Each Clls In [C2].CurrentRegion
       For i = 1 To Len(Clls)
         iText = Mid(Clls, i, 1)
         If IsNumeric(iText) Then K = i: Exit For
       Next i
       With Clls
          Temp1 = Left(.Value, K - 1): Temp2 = Right(.Value, Len(.Value) - K + 1)
          .Value = Temp2: .NumberFormat = "0.00"
       End With
       Cells(1, Clls.Column) = Temp1
    Next Clls
    Application.ScreenUpdating = True
End Sub
Xem file nha
 
Mã:
'=MID($A2,FIND(E$1,$A2,1)+2,LEN($A2)-FIND(E$1,$A2,1))
'=MID($A2,FIND(B$1,$A2,1)+2,FIND("|",$A2,FIND(B$1,$A2,1))-2-FIND(B$1,$A2,1))
Sub chay()
For i = 2 To 5
ten = Cells(1, i)
For rn = 2 To Sheet2.Range("A2").End(xlDown).Row
    If i = 5 Then
    Cells(rn, i) = Mid(Cells(rn, 1), Application.WorksheetFunction.Find(ten, Cells(rn, 1), 1) + 2, Len(Cells(rn, 1)) - Application.WorksheetFunction.Find(ten, Cells(rn, 1), 1))
    Else
    Cells(rn, i) = Mid(Cells(rn, 1), Application.WorksheetFunction.Find(ten, Cells(rn, 1), 1) + 2, Application.WorksheetFunction.Find("|", Cells(rn, 1), Application.WorksheetFunction.Find(ten, Cells(rn, 1), 1)) - 2 - Application.WorksheetFunction.Find(ten, Cells(rn, 1), 1))
    End If
Next
Next
End Sub
Cho em tham gia với, ở đây vui quá!
--=0--=0--=0
Bạn thử nhấn Alt + F8 rồi, chạy Macro "Chay" xem đúng không!
Cái này áp dụng từ công thức bình thường vào thành code thôi! Đừng cười em nha!
Thân.
 
Code này mở rộng hơn cho bạn, ngoài việc có 4 lựa chọn thì có thể hơn nửa về phương ngang và dọc luôn. Hay cả Sheet nào cũng chạy tốt hết.
Nhưng ô B1 và A2 vẩn phải là ô bắt đầu đó nha.
Mã:
Sub chay()
k = [B1].End(xlToRight).Column
For i = 2 To k
ten = Cells(1, i)
For rn = 2 To [A2].End(xlDown).Row
    If i = k Then
    Cells(rn, i) = Mid(Cells(rn, 1), Application.WorksheetFunction.Find(ten, Cells(rn, 1), 1) + 2, Len(Cells(rn, 1)) - Application.WorksheetFunction.Find(ten, Cells(rn, 1), 1))
    Else
    Cells(rn, i) = Mid(Cells(rn, 1), Application.WorksheetFunction.Find(ten, Cells(rn, 1), 1) + 2, Application.WorksheetFunction.Find("|", Cells(rn, 1), Application.WorksheetFunction.Find(ten, Cells(rn, 1), 1)) - 2 - Application.WorksheetFunction.Find(ten, Cells(rn, 1), 1))
    End If
Next
Next
End Sub
 
Giá trị Âm

Em có 2 Cell như sau:
A1: âm
B1: 100
C1: Nếu A1 là âm thì giá trị tại C1 là -100, ngược lại thì dương.

Em dùng công thức như sau: C1 = if (A1="âm","-" & B1, B1) Vẩn cho giá trị đúng, giá trị tại C1 lúc này có thể sữ dụng tính toán được. -0-/.

Nhưng em thấy cùi bắp quá. +-+-+-+ Không biết anh chị có cách nào hay hơn ko? Chỉ em với. -\\/.

Thân!
 
Bạn chỉ cần thêm dấu - trước b1 thôi.
=IF(A1="âm",-B1,B1)
 
Dò Tìm Giá Trị

Em có bài toán dò tìm nhờ các anh chị giúp đở về công thức.
Em ko biết diển đạt thế nào nữa, mời anh chị xem file.

Em chân thành cám ơn!
Thân!
 
Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
Em có bài toán dò tìm nhờ các anh chị giúp đở về công thức.
Em ko biết diển đạt thế nào nữa, mời anh chị xem file.

Em chân thành cám ơn!
Thân!
Dùng thử ct sau
=IF(OR(COUNTIF(Code,RIGHT(A2,3))>0,COUNTIF(Code,LEFT(A2,3))>0),"A","B")
 
Cái này:
=IF(COUNTIF($I$2:$I$10,LEFT($A2,3))+COUNTIF($I$2:$I$10,RIGHT($A2,3))>=1,"A","B")
Và cái này:
=IF(OR(COUNTIF(Code,RIGHT(A2,3))>0,COUNTIF(Code,LE FT(A2,3))>0),"A","B")
Không cần bất cứ toán tử so sánh nào cả!
Chỉ cần:
=IF(COUNTIF($I$2:$I$10,LEFT($A2,3))+COUNTIF($I$2:$I$10,RIGHT($A2,3)),"A","B")
Hoặc:
=IF(OR(COUNTIF(Code,Right(A2,3)),COUNTIF(Code,Left(A2,3))),"A","B")
Là quá đủ
 
Đếm dữ liệu không trùng

Tôi đã xem rất nhiều bài hướng dẫn của các bạn về cách đếm dữ liệu loại bỏ những ô trùng nhau, khi đó chúng ta dùng công thức thường là:
SUMPRODUCT((1/COUNTIF(vungdem,,vungdem))*1)
Nhưng có một vấn đề mà tôi găp phải là khi dữ liệu ở vùng đếm là 0 thì công thức không tính được(không dùng mảng) và khi đếm thêm với một vài điều kiện nữa thì tôi không biết dùng hàm này thế nào. Ví dụ:

17-Aug-07
a 21-Sep-07
s 21-Aug-07
d 20-Aug-07
a
22-Sep-07
s 15-Sep-07
d 14-Aug-07
d
s 22-Aug-07
a 21-Aug-07
s 13-Aug-07
a 17-Aug-07
d 16-Sep-07
d 14-Aug-07
s 20-Sep-07
a 28-Aug-07
a
thực tế chỉ có a,s,d dùng công thức nào để đếm được trong 3 chữ đó có mấy chữ xuất hiện trong tháng 8 và mấy chữ trong tháng 9? Rất mong các bạn chỉ bảo.

Thanks!!!!
 
Bạn chỉ cần dùng hàm sumpoduct là được
Mã:
=SUMPRODUCT(($A$2:$A$19=chu)*(MONTH($B$2:$B$19)=tháng))
 
Bạn chỉ cần dùng hàm sumpoduct là được
Mã:
=SUMPRODUCT(($A$2:$A$19=chu)*(MONTH($B$2:$B$19)=tháng))

Cám ơn bạn đã hướng dẫn.mình muốn hỏi là có công thức tính trực tiếp bao nhiêu chữ xuất hiện.Nghĩa là chỉ tính ra có bao nhiêu chữ khác nhau trong tháng thôi chứ k tính cụ thể mỗi chữ xuất hiện bao nhiêu lần trong từng tháng như cách bạn hướng dẫn.

Thanks!!!
 
Bạn chỉ cần dùng hàm sumpoduct là được
Mã:
 =SUMPRODUCT(($A$2:$A$19=chu)*(MONTH($B$2:$B$19)=tháng))

Cám ơn bạn đã hướng dẫn.mình muốn hỏi là có công thức tính trực tiếp bao nhiêu chữ xuất hiện.Nghĩa là chỉ tính ra có bao nhiêu chữ khác nhau trong tháng thôi chứ k tính cụ thể mỗi chữ xuất hiện bao nhiêu lần trong từng tháng như cách bạn hướng dẫn.

Thanks!!!
 
Cám ơn bạn đã hướng dẫn.mình muốn hỏi là có công thức tính trực tiếp bao nhiêu chữ xuất hiện.Nghĩa là chỉ tính ra có bao nhiêu chữ khác nhau trong tháng thôi chứ k tính cụ thể mỗi chữ xuất hiện bao nhiêu lần trong từng tháng như cách bạn hướng dẫn.

Thanks!!!
Sao bạn không đưa file lên cho dể hình dung? Thật ra là các chử ấy dính liền với ngày tháng hay nó nằm rời ra 1 ô khác
 
Bạn dùng Pivot Table để giải quyết nhé!
 
Tạm thời dùng cột phụ đã.
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom