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.
Mình bấm Ctrl và phím 1, nhưng vẫn không thấy điều kiện thứ tư
Ẹc... Ẹc...
Vậy thì Click phải chuột, chọn Format Cells
Khổ quá với số 1 (số 1 này không được thì thử số 1 khác... bàn phím máy tính để bàn có 2 số 1 cơ mà)
attachment.php
 
Lần chỉnh sửa cuối:
Xin các bạn giúp mình tí: Mình muốn số tiền có dấu phân cách và số tiền bằng chữ in nghiêng thì phải làm thế nào.
B2="Căn cứ vào phần nghiệm thu trên, Bên A phải thanh toán cho Bên B với tổng số tiền là: "&(A1)&"đ ("&vnunicode(A1)&")". các bạn xem giúp file đính kèm.
 
Xin các bạn giúp mình tí: Mình muốn số tiền có dấu phân cách và số tiền bằng chữ in nghiêng thì phải làm thế nào.
B2="Căn cứ vào phần nghiệm thu trên, Bên A phải thanh toán cho Bên B với tổng số tiền là: "&(A1)&"đ ("&vnunicode(A1)&")". các bạn xem giúp file đính kèm.
Bạn dùng thêm hàm text nhé.
Mã:
"Căn cứ vào phần nghiệm thu trên, Bên A phải thanh toán cho Bên B với tổng số tiền là: "&[COLOR=Red]TEXT(A1,"#,##0")[/COLOR]
 
Cảm ơn bạn Salam xin cho mình hỏi thêm vậy còn muốn số tiền bằng chữ in nghiêng thì phải làm sao vậy?
 
Lần chỉnh sửa cuối:
Hoàn thiện dùm em công thức

Chào các anh chị GPE!
Em có file phiếu nhập xuất hàng. Em đang thiết lập công thức cho file này ơe sheet NX). Nhưng không hiểu sao không thực hiện được. Không hiểu em đã làm sai ở đâu. Xin anh chị vui lòng sửa dùm em. Ten: yome - Pass: 1018 Thanks
 
=IF(LEFT($F$5,1)="X","- Lý do xuất: "&" "&VLOOKUP($F$5,NHAP_LIEU!$B$5:$I$100,5,0)&" cho"&""&VLOOKUP(Dò cái gì,NHAP_LIEU!$B$5:$I$100,6,0),("Theo...

Bạn xem lại chổ màu đỏ nha
 
Mấy cái tên DS, VT là name ---> Bạn vào menu Insert\Name\Define sẽ thấy công thức của DSVT

pro ndu giúp em tí nữa nhé, mấy bữa nay em coi hoài cái bài của bác nhưng vẫn chưa hiểu được vấn đề sau:
1- làm sao để lấy ra được địa chỉ của 1 ô nào đó thỏa điều kiện trong name dt?
2- làm sao để tên khi lọc ra thỏa điều kiện xếp liên tiếp nhau, mạc dù trong bảng dữ liệu những tên này ở xa nhau?
mong hồi âm của bác, em định tự học, nhưng bữa giờ coi ko hiểu nên mới lại làm phiền bác tiếp.
 
pro ndu giúp em tí nữa nhé, mấy bữa nay em coi hoài cái bài của bác nhưng vẫn chưa hiểu được vấn đề sau:
1- làm sao để lấy ra được địa chỉ của 1 ô nào đó thỏa điều kiện trong name dt?
2- làm sao để tên khi lọc ra thỏa điều kiện xếp liên tiếp nhau, mạc dù trong bảng dữ liệu những tên này ở xa nhau?
mong hồi âm của bác, em định tự học, nhưng bữa giờ coi ko hiểu nên mới lại làm phiền bác tiếp.
Thông thường để hiểu ý nghĩa của công thức, ta cắt chúng ta từng phần mà nghiên cứu
Ở đây khó nhất là hiểu được name VT, bạn thí nghiệm như sau:
- Bấm Ctrl + F3, chọn name VT rồi copy công thức của nó: (bôi đen công thức, bấm Ctrl + C)
PHP:
=IF((OFFSET(DS,,1,,1)>=Sheet1!$F$1)*(OFFSET(DS,,1,,1)<=Sheet1!$H$1),ROW(INDIRECT("1:"&ROWS(DS))),"")
- Quét chọn D2:D21, paste công thức vừa copy vào thanh Formula.. sau đó bấm Ctrl + Shift + Enter
Giờ hãy chọn tuổi rồi theo dỏi sự thay đổi của công thức nhé
Hy vọng bạn tìm ra được... "bí kíp"... chứ mà giải thích hết chắc... chết luôn
 
pro ndu giúp em tí nữa nhé, mấy bữa nay em coi hoài cái bài của bác nhưng vẫn chưa hiểu được vấn đề sau:
1- làm sao để lấy ra được địa chỉ của 1 ô nào đó thỏa điều kiện trong name dt?
2- làm sao để tên khi lọc ra thỏa điều kiện xếp liên tiếp nhau, mạc dù trong bảng dữ liệu những tên này ở xa nhau?
mong hồi âm của bác, em định tự học, nhưng bữa giờ coi ko hiểu nên mới lại làm phiền bác tiếp.

Bài trên sử dựng công thức mảng để trích lọc.

Để hiểu rõ về công thức mảng thì đòi hỏi phải có một kiện thức nhất định nào đó. Trước khi làm một vấn đề gì thì ta phải hiểu rõ vấn đề đó, phân tích và đưa ra giải pháp, sau đó ta sẽ thực thi giải pháp đó bằng các công thức.

Với bài trên thì mình xin mô tả sơ về giải pháp như sau :

1. Xác định vùng dữ liệu là từ A2:B21 (sử dụng hàm offset trong Name DS)

2. Trong vùng dữ liệu, lấy vùng tuổi đem so sánh với điều kiện cho trước (F1 và H1). Nếu không thỏa mãn thì trả về rỗng "", ngược lại sẽ trả về thứ tự dòng trong vùng dữ liệu. Cụ thể, ở ví dụ trên, Name VT sẽ trả về kết quả việc so sánh trên, kết quả đạt được sẽ là một mảng chứa các phần tử rỗng và các phần tử chỉ rõ thứ tự dòng tương ứng :

VT={"";"";3;4;"";6;"";"";"";10;11;12;"";"";"";16;17;18;19;20}

Trong các phần tử trong VT, phần tử rỗng sẽ có giá trị lớn hơn phần tử số.

3. Lần lượt tìm ra phần tử nhỏ thứ ROWS($n:n) có trong VT, nếu phần tử nhỏ thứ n mà là rỗng "" thì sẽ trả về rỗng, ngược lại trả về giá trị của phần tử đó. Điều này có nghĩa khi công thức kết quả đang nằm ở ô J2 thì Rows($n:n) = Rows($1:1)=1, phần tử nhỏ thứ 1 sẽ là : SMALL(VT,ROWS($1:1))=3
Tương tự :
phần tử nhỏ thứ 2 (ô J3) sẽ là : SMALL(VT,ROWS($1:1))=4
phần tử nhỏ thứ 3 (ô J4) sẽ là : SMALL(VT,ROWS($1:2))=6
.....
phần tử nhỏ thứ 11 sẽ là : SMALL(VT,ROWS($1:10))=19
phần tử nhỏ thứ 12 sẽ là : SMALL(VT,ROWS($1:11))=20
phần tử nhỏ thứ 13 sẽ là : SMALL(VT,ROWS($1:12))=#NUM!
....

4. Ta biết rằng giá trị của phần tử nhỏ thứ n (giá trị thỏa mãn điều kiện so sánh) trong VT sẽ ứng với vị trí thứ n của dòng dữ liệu DS. Vì vậy, để lấy được dữ liệu tại dòng thứ n thì ta dùng hàm Index để lấy kết quả.
INDEX(DS,SMALL(VT,ROWS($1:1)),1)="C"
INDEX(DS,SMALL(VT,ROWS($1:2)),1)="d"
INDEX(DS,SMALL(VT,ROWS($1:3)),1)="ds"
...
INDEX(DS,SMALL(VT,ROWS($1:12)),1)=#NUM!
....
Để tránh lỗi trả về #NUM! thì ta kết hợp thêm hàm Count
ROWS($n:n)>COUNT(VT)
Nếu như phần tử thứ n mà lớn hơn số phần tử số có trong VT thì trả về rỗng.

Cụ thể :
=IF(ROWS($1:11)>COUNT(VT),"",INDEX(DS,SMALL(VT,ROWS($1:11)),1))
<=>
=IF(11>11,"","tyjukj")

=IF(ROWS($1:12)>COUNT(VT),"",INDEX(DS,SMALL(VT,ROWS($1:12)),1))
<=>
=IF(12>11,"",#NUM!)
...
 
thank's các bác nhé. tại em ko hiểu được cái VT nó sẽ trả về cái j nên bí mấy bữa nay, dc các bác giải thích như thế này thì cũng đã thông rùi, chỉ còn thực hành xem thế nào thui. em sẽ làm và thông báo kết quả đến các bác trong thời gian sớm nhất.
nhân tiện đây cho em cảm ơn diễn đàn luôn, vì anh em trên này rất nhiệt tình, hồi âm cho các vấn đề rất nhanh.
Hãy vì 1 GPE vững mạnh !
 
Chào bạn, mình đã đọc hướng dẫn của bạn nhưng mình vẫn không hiểu rõ về hàm offset và small, ...tại kiến thức của mình còn tệ quá, mình rất thích làm những công thức trên vì nó liên quan rất nhiều đến công việc của mình, nếu không cảm thấy phiền bạn có thể hướng dẫn cụ thể hơn dùm mình được không. Cảm ơn.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Chào bạn, mình đã đọc hướng dẫn của bạn nhưng mình vẫn không hiểu rõ về hàm offset và small, ...tại kiến thức của mình còn tệ quá, mình rất thích làm những công thức trên vì nó liên quan rất nhiều đến công việc của mình, nếu không cảm thấy phiền bạn có thể hướng dẫn cụ thể hơn dùm mình được không. Cảm ơn.

Không biết thế nào nữa !
Bạn xem hai hàm đó đi ,vắt tay lên tráng suy ngẫm đi ...
Small
Offset
Thân
 
Không biết thế nào nữa !
Bạn xem hai hàm đó đi ,vắt tay lên tráng suy ngẫm đi ...
Small
Offset
Thân
Cảm ơn bạn, nhờ cú pháp và vd minh họa của bạn nên mình cũng dể hiểu, cám ơn nha. Nhưng chỉ hiểu được vậy thôi chứ lồng vào để làm công thức phức tạp hơn xíu là mình lại lúng túng quá, thôi để suy nghĩ một lần nữa nếu không được nhờ bạn giúp ha.
 
Lần chỉnh sửa cuối:
=IF((OFFSET(DS,,1,,1)>=Sheet1!$F$1)*(OFFSET(DS,,1,,1)<=Sheet1!$H$1),ROW(INDIRECT("1:"&ROWS(DS))),"")
Cho mình hỏi xíu "1:" là gì vậy bạn, sao đọc hoài chỉ hiểu vd đơn giản trong small, offset của volga gởi thôi chứ làm trong name nghĩ mãi chẳng hiểu nổi, thông được hàm 2 hàm trên chút chút thì lại vướng hàm khác (indirect), rồi name này nằm trong name kia, thật khó để làm được, mình cũng trích lọc được theo kiểu dủng cột phụ nhưng rất thủ công nên rất thích làm trong name, cũng ngại lắm nhưng không hiểu nên nếu không phiền mấy bạn giúp mình chi tiết hơn nha.
 
=IF((OFFSET(DS,,1,,1)>=Sheet1!$F$1)*(OFFSET(DS,,1,,1)<=Sheet1!$H$1),ROW(INDIRECT("1:"&ROWS(DS))),"")
Cho mình hỏi xíu "1:" là gì vậy bạn, sao đọc hoài chỉ hiểu vd đơn giản trong small, offset của volga gởi thôi chứ làm trong name nghĩ mãi chẳng hiểu nổi, thông được hàm 2 hàm trên chút chút thì lại vướng hàm khác (indirect), rồi name này nằm trong name kia, thật khó để làm được, mình cũng trích lọc được theo kiểu dủng cột phụ nhưng rất thủ công nên rất thích làm trong name, cũng ngại lắm nhưng không hiểu nên nếu không phiền mấy bạn giúp mình chi tiết hơn nha.

Chào bạn !
Bạn xem đi nhé ,mình củng không biết nói sao nữa (Chính bản thân mình củng chưa hiểu +-+-+-+).Bạn xem cái này trước .
Rồi tiếp xem ở đây có gì không ?
Rộng hơn vào đây !

Xem trong File mình gởi lại có một cột C tô màu vàng. ĐÓ là công thức trong Name VT đó ,khi copy ra ngoài để bên cạnh dử liệu của bạn .Kết thúc thúc công thức bằng Ctrl + Shift + Enter .
Kết quả thu được của name này là số thứ tự của dòng chứa dử liệu thỏa mảng đk yêu cầu lọc ra của bạn .
Từ từ suy nghỉ nhe !
Thân
 
bạn nên copy công thức trong name đó ra ngoài cell thì bạn sẽ thấy dễ hiểu hơn.
 
Em không thấy "insert file" đâu hết . Em có gửi hình , anh xem giúp em .
 

Bạn có thể dùng hàm Max như sau (sau khi gọ công thức, nhớ ấn Ctrl+Shift+Enter):

attachment.php


Sau đó copy công thức xuống dưới.

Tương tự với nhiều điều kiện khác, ta cứ nhân điều kiện vào với nhau lồng trong hàm MAX
 
Lần chỉnh sửa cuối:
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom