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.
Cho tôi hỏi chút:
Tôi có 1 bảng tính Ex gồm rất nhiều khoản thưởng của CBCNV trong công ty.Danh sách rất dài khoảng trên 4000 ròng. Tôi muốn Những tên trùng nhau thì cộng vào với nhau và chỉ ra 1 ròng thôi còn các dòng trùng khác thì trả về giá trị bằng không. Các chỉ giáo cho mình với nhé.Thank
 
Cho tôi hỏi chút:
Tôi có 1 bảng tính Ex gồm rất nhiều khoản thưởng của CBCNV trong công ty.Danh sách rất dài khoảng trên 4000 ròng. Tôi muốn Những tên trùng nhau thì cộng vào với nhau và chỉ ra 1 ròng thôi còn các dòng trùng khác thì trả về giá trị bằng không. Các chỉ giáo cho mình với nhé.Thank

Gừi file mẫu lên thì anh em tra lời mới nhanh và bạn vận dụng trong file của bạn mới dễ dàng
 
hình như cái kiểu cộng số liệu này bác anh tuấn có làm rồi. Nhưng em không nhớ cách làm chính xác. Qua bài tham khảo của bác em hiểu cách làm thôi. Trong trường hợp này, chỉ cần sử dụng hàm if kết hợp với countif , sumif thôi.
giả sử cột a là mã số nhân viên ( bắt đầu a5), cột b là diễn giải, cột c là số tiền. tại cell d5 bạn nhập công thức sau:

=IF(COUNTIF($A$5:A5,A5)=1,SUMIF(A5:$A$16,A5,C5:$C$16),"")
sau đó kéo chuột copy công thức là xong.
 
Cho tôi hỏi chút:
Tôi có 1 bảng tính Ex gồm rất nhiều khoản thưởng của CBCNV trong công ty.Danh sách rất dài khoảng trên 4000 ròng. Tôi muốn Những tên trùng nhau thì cộng vào với nhau và chỉ ra 1 ròng thôi còn các dòng trùng khác thì trả về giá trị bằng không. Các chỉ giáo cho mình với nhé.Thank

Cấu trúc dữ liệu của bạn như thế nào!? Theo mình, bạn có thể sử dụng công cụ Subtotal của excel hoặc Pivotable đều được. Bạn có thể post fiel với một ít dữ liệu để dễ hình dung không?
 
Nhờ giải thích công thức lạ

Kiến thức của các bác quả thực là em không thể theo nổi. Em đã cố hiểu theo máy móc rồi nhưng không thể hình dung nó là cái gì để mà áp dụng. Ví dụ xưa nay áp dụng hàm nếu là tham chiếu là chữ thì chỉ có ở trong dấu “B1” (Tức mỗi bên là dấu kép). Sao công thức này lại như sau: =INDIRECT("'"&Tonghop!$B5&"'!A1") bên phải ô B5 có một dấu đơn và một dấu kép. Em rất mong các bác chỉ giúp hộ em ý nghĩa của công thức này. Em xin cảm ơn vô cùng.
 
Kiến thức của các bác quả thực là em không thể theo nổi. Em đã cố hiểu theo máy móc rồi nhưng không thể hình dung nó là cái gì để mà áp dụng. Ví dụ xưa nay áp dụng hàm nếu là tham chiếu là chữ thì chỉ có ở trong dấu “B1” (Tức mỗi bên là dấu kép). Sao công thức này lại như sau: =INDIRECT("'"&Tonghop!$B5&"'!A1") bên phải ô B5 có một dấu đơn và một dấu kép. Em rất mong các bác chỉ giúp hộ em ý nghĩa của công thức này. Em xin cảm ơn vô cùng.
  1. Trong trường hợp này =INDIRECT(" ' "&Tonghop!$B5&" '!A1") thì " ' " là không cần.
  2. Nhưng không phải là thừa, vì đề phòng người sử dụng thay đổi tên sheet Tonghop thành tên mới có khoảng cách hoặc có dấu tiếng việt thì " ' " giúp cho công thức nhận ra tên sheet (có khoảng cách hoặc có dấu tiếng việt ) để tiếp tục tính toán mà người sử dụng không phải thay đổi lại công thức
  3. Hãy thử bỏ dấu " ' " xem kết quả -> thay đổi tên sheet (có khoảng cách hoặc có dấu tiếng việt ) lại xem kết quả -> ...
 
Các bác ơi, cho em hỏi ngu tí, em đặt tên cho 1 vùng ở sheet1 A1:A5 (ấn F3) là Tenchuyengia, xong rồi em sang sheet2 muốn hiện đúng thứ tự lần lượt các tên chuyên gia này, em vào ô A6 bấm =Ten, sao không được nhỉ (#value), nó chỉ hiểu tương ứng vị trí ở sheet1 thôi (giống như sheet2!A3=Sheet2!A3). Cho em hỏi là khi muốn trích dữ liệu (ở các sheet khác) của cả vùng Tenchuyengia ở Sheet1 thì làm thế nào? (em không muốn trích dẫn trực tiếp (như Sheet1!A$!$:A$5$) mà phải trích dẫn theo name (Tenchuyengia) kia
 
Lần chỉnh sửa cuối:
Các bác ơi, cho em hỏi ngu tí, em đặt tên cho 1 vùng ở sheet1 A1:A5 (ấn F3) là Tenchuyengia, xong rồi em sang sheet2 muốn hiện đúng thứ tự lần lượt các tên chuyên gia này, em vào ô A6 bấm =Ten, sao không được nhỉ (#value), nó chỉ hiểu tương ứng vị trí ở sheet1 thôi (giống như sheet2!A3=Sheet2!A3). Cho em hỏi là khi muốn trích dữ liệu (ở các sheet khác) của cả vùng Tenchuyengia ở Sheet1 thì làm thế nào? (em không muốn trích dẫn trực tiếp (như Sheet1!A$!$:A$5$) mà phải trích dẫn theo name (Tenchuyengia) kia

tại bất kỳ vị trí nào của sheet nào. muốn lấy nguyên như vùng đã đặt tên "Tenchuyengia" thì nhập công thức như sau
PHP:
=index(Tenchuyengia,rows($1:1))
hoặc muốn loại bỏ lỗi khi kéo thừa dòng thì
=if(rows($1:1)>counta(Tenchuyengia),"",index(Tenchuyengia,rows($1:1)))
Rồi copy công thức xuống (kéo fill xuống)
 
Lần chỉnh sửa cuối:
Đã lấy nguyên cả mãng Tenchuyengia luôn thì cần gì công thứcdài dòng rắc rối chứ!
Quét chọn 1 vùng trống nào đó rồi gõ vào thanh Formula công thức =Tenchuyengia ---> Ctrl + Shift + Enter là đươc rồi
 
Các bác xem hộ em xem sao cái hàm Vlookup này lại bị sai là sao? Em thêm có mỗi một lệnh IF mà!
 
Lần chỉnh sửa cuối:
Mãi mà k upload được hình lên, các bác thông cảm, em copy ra đây vậy. Em viết cái này, thấy được,

=VLOOKUP($B$4,Tso!$C$22:$R$38,IF(A7=Tso!$D$22,2,IF(A7=Tso!$E$22,3,IF(A7=Tso!$F$22,4,IF(A7=Tso!$G$22,5,IF(A7=Tso!$H$22,6,IF(A7=Tso!$I$22,7,IF(A7=Tso!$J$22,8,1))))))),0)

Viết thêm 1 lệnh if nữa

=VLOOKUP($B$4,Tso!$C$22:$R$38,IF(A13=Tso!$D$22,2,IF(A13=Tso!$E$22,3,IF(A13=Tso!$F$22,4,IF(A13=Tso!$G$22,5,IF(A13=Tso!$H$22,6,IF(A13=Tso!$I$22,7,IF(A13=Tso!$J$22,8,IF(A13=Tso!$k$22,9,1)))))))),0)
thế là hỏng luôn, nó báo contains errors
 
Cố gắng up file lên, khó hình dung quá!
Tôi có nhận xét: Với IF nhiều thế sao bạn không dùng hàm MATCH
Ví dụ thay 1 đóng IF ấy thành:
IF(ISERROR(MATCH(A13,Tso!$D$22:$k$22,0)),1,MATCH(A13,Tso!$D$22:$k$22,0)+1)
Tức tìm A13 trong vùng Tso!$D$22:$k$22 xem nó nằm vị trí thứ mấy
Đại khái là vậy! (kiểm tra lại cú pháp nha)
 
Lần chỉnh sửa cuối:
=VLOOKUP($B$4,Tso!$C$22:$R$38,IF(A13=Tso!$D$22,2,IF(A13=Tso!$E$22,3,IF(A13=Tso!$F$22,4,IF(A13=Tso!$G$22,5,IF(A13=Tso!$H$22,6,IF(A13=Tso!$I$22,7,IF(A13=Tso!$J$22,8,IF(A13=Tso!$k$22,9,1)))))))),0)
thế là hỏng luôn, nó báo contains errors
nếu bạn dùng office 2003 hay phiên bản thấp hơn thì chỉ sử dụng tối đa 7 vòng if lồng nhau. vì vậy mà công thức trên của bạn báo lỗi là phải.
nhìn vào công thức của bạn mình có thể sửa lại như sau
=VLOOKUP($B$4,Tso!$C$22:$R$38,MATCH(A13,$D$22:$K$22,0)+1,0)
 
nếu bạn dùng office 2003 hay phiên bản thấp hơn thì chỉ sử dụng tối đa 7 vòng if lồng nhau. vì vậy mà công thức trên của bạn báo lỗi là phải.
nhìn vào công thức của bạn mình có thể sửa lại như sau
Cái này gần giống cách tôi vừa làm... nhưng thiếu hàm bẩy lổi thì không đựoc đâu... Vì có 1 chổ trong chuổi hàm của bạn kungfu nói rằng: Nếu A13 không bằng tất cả thì lấy kết quả là 1
 
Cái này gần giống cách tôi vừa làm... nhưng thiếu hàm bẩy lổi thì không đựoc đâu... Vì có 1 chổ trong chuổi hàm của bạn kungfu nói rằng: Nếu A13 không bằng tất cả thì lấy kết quả là 1
Cám ơn các bác, em dùng match rồi, tối qua về nghiền mới biết, sáng nay thấy các bác nói, thấy đúng quá, Excel2003, if không lặp quá 7 vòng.
 
Cám ơn các bác, em dùng match rồi, tối qua về nghiền mới biết, sáng nay thấy các bác nói, thấy đúng quá, Excel2003, if không lặp quá 7 vòng.
Bạn nhớ cho 1 điều: Cái gì có tính "lập" hoặc "tuần hoàn" thì đừng nên dùng IF... Hãy nghĩ đến việc thiết lập quy luật cho nó bằng các hàm nào đó mà bạn có thể nghĩ ra được!
Có đôi khi chỉ cần sửa lại 1 tí dử liệu gốc thì mọi chuyện lại trở nên dể dàng...
Vô chừng lắm ---> Công thức là dựa vào dử liệu nhập mà
 
Tách dữ liệu

Mong các cao thủ giúp em công thức tách dữ liệu.
Em có 1 dòng dữ liệu, muốn tách nó ra từng loại như sau:
vd:
A1= AS100|SD200|DF300|FG400
Em muốn tách thành:
B1= 100
C1= 200
D1= 300
E1= 400

Mong nhận được sự giúp đở của anh chị.

Thân!
 
Lần chỉnh sửa cuối:
Mong các cao thủ giúp em công thức tách dữ liệu.
Em có 1 dòng dữ liệu, muốn tách nó ra từng loại như sau:
vd:
A1= AS100|SD200|DF300|FG400
Em muốn tách thành:
B1= 100
C1= 200
D1= 300
E1= 400

Thân!
bạn xem file có được không nhé!
 
Tạm dùng cái này thử:
PHP:
Option Explicit
Sub Tach()
   Dim Rng As Range, Clls As Range
   Dim i As Integer
   Dim iText As String
   Application.ScreenUpdating = False
   [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 = Len(Clls) To 1 Step -1
         iText = Mid(Clls, i, 1)
         If IsNumeric(iText) = False And iText <> "." Then
            With Clls
               .Value = Replace(.Value, iText, "")
               .NumberFormat = "0.00"
            End With
         End If
       Next i
    Next Clls
    Application.ScreenUpdating = True
End Sub
(chưa hay lắm, sẽ chỉnh sửa và nâng cấp sau)
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom