Hỏi về hàm: để đường kính tương thích với kích thước? (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

thanhquangauh

Thành viên chính thức
Tham gia
22/9/13
Bài viết
60
Được thích
2
Chào các a(c) trong GPE, e có vấn đề như sau:
Dữ liệu gồm có:
1. đường kính 1, đường kính 2
2. tên 1, tên 2
3. kích thước
ghi chú: cột kích thước tương ứng với cột tên và được chia làm 3 phần: phần trên - phần giữa - phần cuối
câu hỏi là: làm sao để ghép đường kính 1 với phần trên và phần cuối, đường kính 2 ghép với phần giữa?
và kết quả thể hiện cột "U"
07-05-2018 11-59-51 PM.jpg
e có file đính kèm (lưu ý: là đùng bằng công thức càng đơn giản càng hay)
 

File đính kèm

Mô tả chưa cụ thể.
Trong dữ liệu có thứ tự trong cột "Kích thước":
- Với D1, D10, D12: ̣loạt 15 - loạt 35 - loạt 15
- Với D13: : ̣loạt 15 - loạt 30 - loạt 15

Tôi hiểu là loạt giữa thay đổi - 35, 30, ...
Nhưng với dữ liệu ví dụ thì loạt đầu và cuối không đổi. Ở ví dụ luôn là 15. Trong trường hợp khác thì luôn là 13? Hay là loạt đầu/cuối và giữa đều có thể thay đổi? Tất nhiên phải thỏa đk là trong cùng Tên 2 thì loạt đầu và cuối như nhau.

Ví dụ minh họa điều tôi nói:

- Với D1: ̣loạt 15 - loạt 36 - loạt 15
- Với D10: ̣loạt 17 - loạt 38 - loạt 17
- Với D12: ̣loạt 19 - loạt 40 - loạt 19
- Với D13: ̣loạt 21 - loạt 42 - loạt 21

Đã cho dữ liệu thì nên cho ở dạng tổng quát và nói 1 câu về dạng dữ liệu. Bạn mới nói về cách tính kết quả. Bạn không mô tả dữ liệu, dạng dữ liệu, qui luật dữ liệu.

Nếu loạt đầu và cuối có thể thay đổi, vd. theo mỗi ngày, nhưng ở mỗi thời điểm thì với mọi Tên 2 loạt đầu/cuối đều như nhau thì công thức sẽ đơn giản hơn. Vì thế luôn cần mô tả kỹ dữ liệu để người giúp có thể lựa chọn công thức thích hợp.
 
Chào các a(c) trong GPE, e có vấn đề như sau:
Dữ liệu gồm có:
1. đường kính 1, đường kính 2
2. tên 1, tên 2
3. kích thước
ghi chú: cột kích thước tương ứng với cột tên và được chia làm 3 phần: phần trên - phần giữa - phần cuối
câu hỏi là: làm sao để ghép đường kính 1 với phần trên và phần cuối, đường kính 2 ghép với phần giữa?
và kết quả thể hiện cột "U"
View attachment 195081
e có file đính kèm (lưu ý: là đùng bằng công thức càng đơn giản càng hay)
Bạn tham khảo file
 

File đính kèm

Mô tả chưa cụ thể.
Trong dữ liệu có thứ tự trong cột "Kích thước":
- Với D1, D10, D12: ̣loạt 15 - loạt 35 - loạt 15
- Với D13: : ̣loạt 15 - loạt 30 - loạt 15

Tôi hiểu là loạt giữa thay đổi - 35, 30, ...
Nhưng với dữ liệu ví dụ thì loạt đầu và cuối không đổi. Ở ví dụ luôn là 15. Trong trường hợp khác thì luôn là 13? Hay là loạt đầu/cuối và giữa đều có thể thay đổi? Tất nhiên phải thỏa đk là trong cùng Tên 2 thì loạt đầu và cuối như nhau.

Ví dụ minh họa điều tôi nói:

- Với D1: ̣loạt 15 - loạt 36 - loạt 15
- Với D10: ̣loạt 17 - loạt 38 - loạt 17
- Với D12: ̣loạt 19 - loạt 40 - loạt 19
- Với D13: ̣loạt 21 - loạt 42 - loạt 21


Đã cho dữ liệu thì nên cho ở dạng tổng quát và nói 1 câu về dạng dữ liệu. Bạn mới nói về cách tính kết quả. Bạn không mô tả dữ liệu, dạng dữ liệu, qui luật dữ liệu.

Nếu loạt đầu và cuối có thể thay đổi, vd. theo mỗi ngày, nhưng ở mỗi thời điểm thì với mọi Tên 2 loạt đầu/cuối đều như nhau thì công thức sẽ đơn giản hơn. Vì thế luôn cần mô tả kỹ dữ liệu để người giúp có thể lựa chọn công thức thích hợp.
A mô tả đúng với ý của e, vậy làm sao để thực hiện được công thức như vậy? Nhờ a (c) giúp dùm. Thanks
 
Chào các a(c) trong GPE, e có vấn đề như sau:
Dữ liệu gồm có:
1. đường kính 1, đường kính 2
2. tên 1, tên 2
3. kích thước
ghi chú: cột kích thước tương ứng với cột tên và được chia làm 3 phần: phần trên - phần giữa - phần cuối
câu hỏi là: làm sao để ghép đường kính 1 với phần trên và phần cuối, đường kính 2 ghép với phần giữa?
và kết quả thể hiện cột "U"
View attachment 195081
e có file đính kèm (lưu ý: là đùng bằng công thức càng đơn giản càng hay)
Tạo cho bạn 2 công thức
Công thức dài khó hiểu nhưng nhẹ file, còn muốn ngắn gọn dể hiểu thì dùng công thức 2
 

File đính kèm

Cấu trúc hàm IF đơn giản như cấu trúc quả cầu. Nếu bạn muốn đơn giản thì thử công thức sau cho U14
Mã:
=IF(T14=T13,U13,"f"&IF(B14<>B13,Q$8,IF(--MID(U13,2,1)=Q$8,Q$9,Q$8))&"a"&T14*10)
 
Cấu trúc hàm IF đơn giản như cấu trúc quả cầu. Nếu bạn muốn đơn giản thì thử công thức sau cho U14
Mã:
=IF(T14=T13,U13,"f"&IF(B14<>B13,Q$8,IF(--MID(U13,2,1)=Q$8,Q$9,Q$8))&"a"&T14*10)
Cho e hỏi hàm --Mid(U13,2,1) có 2 dấu trừ phía trước là như thế nào vậy a, nếu như đường kính 1 = 10, đường kính 2 = 8 thì làm thế nào vậy a!
 
Cho e hỏi hàm --Mid(U13,2,1) có 2 dấu trừ phía trước là như thế nào vậy a,
Nếu ta biết a là số - nhìn là số - nhưng ở dạng chuỗi (theo lôgíc của Excel thì là chuỗi) thì --a để Excel convert thành số a.
-a sẽ trả về giá trị đối của a trên trục số (a và -a đối xứng với nhau qua điểm O = 0). Excel sẽ tự convert -a thành số đối của a. Tất nhiên nếu không convert được thì sẽ có lỗi. Vd. -a sẽ lỗi nếu a = 1a.
Nhưng -a thì lại không phải là a nếu a <> 0, vậy ta dùng phép đổi dấu 2 lần:
b = -a.
b là số đối của a, a là số đối của b.
--a = -(-a) = -b = a
Tóm lại mục đích dùng phép đổi dấu 2 lần là để Excel convert chuỗi thành số nếu có thể.
nếu như đường kính 1 = 10, đường kính 2 = 8 thì làm thế nào vậy a
Tôi quên là dữ liệu chỉ là ví du.
Công thức cho 2 đường kính có số chữ số bất kỳ.
Mã:
=IF(T14=T13,U13,"f"&IF(B14<>B13,Q$8,IF(MID(U13,2,LEN(Q$8))=Q$8&"",Q$9,Q$8))&"a"&T14*10)

Tức thay --MID(U13,2,1)=Q$8 (so sánh 2 số) bằng MID(U13,2,LEN(Q$8))=Q$8&"" (so sánh 2 chuỗi)

Triết lý - thuật toán như nhau, chỉ có chút thay đổi khi thực hiện.
----------------
hàm --Mid(U13,2,1) có 2 dấu trừ phía trước
Theo tôi chính xác là thế này:
c = a - b
Ký tự "-" ở trên là toán tử phép trừ

b = -a
Ở trên không có phép trừ gì cả. Ký tự "-" ở trên là toán tử đổi dấu.

Như vậy thì theo tôi ý nghĩa của ký tự "-" được chỉ ra bởi ngữ cảnh. Gọi là 2 dấu trừ cũng được.
 
Lần chỉnh sửa cuối:
Nếu ta biết a là số - nhìn là số - nhưng ở dạng chuỗi (theo lôgíc của Excel thì là chuỗi) thì --a để Excel convert thành số a.
-a sẽ trả về giá trị đối của a trên trục số (a và -a đối xứng với nhau qua điểm O = 0). Excel sẽ tự convert -a thành số đối của a. Tất nhiên nếu không convert được thì sẽ có lỗi. Vd. -a sẽ lỗi nếu a = 1a.
Nhưng -a thì lại không phải là a nếu a <> 0, vậy ta dùng phép đổi dấu 2 lần:
b = -a.
b là số đối của a, a là số đối của b.
--a = -(-a) = -b = a
Tóm lại mục đích dùng phép đổi dấu 2 lần là để Excel convert chuỗi thành số nếu có thể.

Tôi quên là dữ liệu chỉ là ví du.
Công thức cho 2 đường kính có số chữ số bất kỳ.
Mã:
=IF(T14=T13,U13,"f"&IF(B14<>B13,Q$8,IF(MID(U13,2,LEN(Q$8))=Q$8&"",Q$9,Q$8))&"a"&T14*10)

Tức thay --MID(U13,2,1)=Q$8 (so sánh 2 số) bằng MID(U13,2,LEN(Q$8))=Q$8&"" (so sánh 2 chuỗi)

Triết lý - thuật toán như nhau, chỉ có chút thay đổi khi thực hiện.
----------------

Theo tôi chính xác là thế này:
c = a - b
Ký tự "-" ở trên là toán tử phép trừ

b = -a
Ở trên không có phép trừ gì cả. Ký tự "-" ở trên là toán tử đổi dấu.

Như vậy thì theo tôi ý nghĩa của ký tự "-" được chỉ ra bởi ngữ cảnh. Gọi là 2 dấu trừ cũng được.
Anh dùng LEN(Q$8) có thể hiểu là đã tổng quát cho trường hợp đường kính lớn hơn 1 ký tự. Tuy nhiên, việc cắt một đoạn chuỗi bằng với số ký tự của đường kính 1 để so sánh với đường kính 1 có một lỗi tiềm ẩn. Ví dụ đường kính 1 = 3, đường kính 2 = 30
 
Anh dùng LEN(Q$8) có thể hiểu là đã tổng quát cho trường hợp đường kính lớn hơn 1 ký tự. Tuy nhiên, việc cắt một đoạn chuỗi bằng với số ký tự của đường kính 1 để so sánh với đường kính 1 có một lỗi tiềm ẩn. Ví dụ đường kính 1 = 3, đường kính 2 = 30
Cám ơn nhiều.

Tôi chủ quan không kiểm tra lại mà cứ đinh ninh là Đường kính 1 là đường kính ngoài, còn Đường kính 2 là đường kính trong

Không có việc gì khó
Chỉ sợ đầu ... không có dầu :D

Thôi đã trót với ý tưởng này thì trung thành tới cùng

Đường kính 1 có thể nhỏ hơn, hoặc bằng, hoặc lớn hơn Đường kính 2
Mã:
=IF(T114=T113;U113;"f"&IF(B114<>B113;Q$8;IF(AND(MID(U113;2;LEN(Q$8))=Q$8&"";ISERR(--MID(U113;2;LEN(Q$8)+1)));Q$9;Q$8))&"a"&T114*10)
 
Lần chỉnh sửa cuối:
Có mỗi việc kiểm tra xem dòng trên có Q8 hay không mà cứ đi đường vòng. Đúng là đầu đất :D

Công thức ngắn và đơn giản hơn
Mã:
=IF(T14=T13,U13,"f"&IF(B14<>B13,Q$8,IF(COUNTIF(U13,"f"&Q$8&"a*"),Q$9,Q$8))&"a"&T14*10)
 
Web KT

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

Back
Top Bottom