Hiển thị trống khi tham chiếu ô trống trong Excel 2010


27

Tôi có một sổ làm việc Excel 2010 có chứa một số bảng tính riêng lẻ. Các ô trên một trong các trang tính được liên kết với các ô riêng lẻ trên hai trang tính khác trong cùng một sổ làm việc. Tôi đang sử dụng một tham chiếu ô trực tiếp mà về cơ bản nói rằng bất kỳ giá trị nào được nhập vào một ô cụ thể trên một trang cũng sẽ điền vào các ô trên hai trang khác. Tôi đã sử dụng hàm (=) với tham chiếu ô để thực hiện việc này.

Vấn đề tôi gặp phải là, ngay cả khi ô chính bị bỏ trống, các ô nằm trong ô chính đó sẽ hiển thị 0, thay vì tự để trống.

Tôi muốn các ô cấp dưới vẫn trống nếu ô chính được liên kết đến trống.


Công thức của tôi rất dài, đối với tôi, việc xây dựng IF khó chấp nhận, câu hỏi hay nhưng tôi cũng không tìm thấy câu trả lời đủ tốt. {= IFERROR (INDEX (NEPŘÍMÝ.ODKAZ ("EsZkouska"); SMALL (KDYŽ ((INDEX (NEPŘÍMÝ.ODKAZ ("EsZkouska") ;; 1; 1) = "ČSN721180" EsZkouska ") ;; 9; 1) =" RC_P_B "); ŘÁDEK (NEPŘÍMÝ.ODKAZ (" EsZkouska ")) - MIN (ŘÁDEK (NEPŘÍMÝ.ODKAZ (" EsZkouska) ") ; 17; 1); "")}
Vojtěch Dohnal

Có thể sử dụng xây dựng IF kết hợp với phương pháp này: stackoverflow.com/questions/22359452/ . Như thế này, bạn có thể tạo các công thức được đặt tên và sử dụng chúng trong câu lệnh IF đơn giản của mình ...
Vojtěch Dohnal

Câu trả lời:


49

Bạn cần buộc Excel xử lý nội dung của ô dưới dạng giá trị văn bản thay vì số, nó tự động thực hiện với các giá trị trống.

=A2 & ""

Điều này sẽ buộc Excel biến ô đó tham chiếu giá trị văn bản, do đó ngăn chuyển đổi khoảng trống thành số không.


4
Ồ Tôi không thể tin rằng nó lại đơn giản như vậy!
Scott

1
Làm thế nào để giải pháp đối phó với định dạng của đầu vào số? Dường như với tôi như thể câu trả lời này phá hủy dữ liệu số. Chắc chắn - bạn không nhận được 0 khi ô trống, nhưng bạn cũng nhận được dữ liệu văn bản thay vì số ... Đây có phải là vấn đề trong thực tế hay bạn có bất kỳ từ nào yên tâm không?
LudvigH

1
Nó lưu nó dưới dạng văn bản. Tuy nhiên, khi bạn sử dụng nó trong một phương trình toán học, Excel sẽ chuyển đổi nó trở lại thành một số. Tuy nhiên, trên thực tế, bạn sẽ chỉ triển khai giải pháp này trên một báo cáo mà bạn đã thực hiện công việc đằng sau các cảnh trên các trang tính khác hoặc các cột ẩn.
wbeard52

18

Đây là ba câu trả lời:

1) Để other.cell.reference thể hiện công thức tham chiếu mà bạn hiện có sau =(ví dụ  Sheet17!$H$42:), thay thế tham chiếu liên kết đó bằng

=IF(other.cell.reference <>"",other.cell.reference, "")

2) Đặt định dạng Số Số của các tế bào được liên kết của bạn thành Số lượng tùy chỉnh : General;–General;.

3) Trong các tùy chọn trong Excel Excel, trang, nâng cao, các tùy chọn Hiển thị cho bảng tính này, xóa phần Hiển thị số 0 trong các ô có hộp kiểm giá trị 0. Cảnh báo: điều này sẽ khiến tất cả các số 0 trong bảng tính biến mất.


1
Tùy chọn đầu tiên là tối ưu phụ, vì nó yêu cầu nhập (hoặc sao chép) công thức của bạn hai lần trong ô. Nó có thể đặc biệt khó chịu khi bạn có một công thức thực sự dài, và sau đó cần chỉnh sửa (hoặc tệ hơn là gỡ lỗi) công thức đó sau. Tùy chọn thứ hai dường như không hiệu quả với tôi, nhưng có lẽ tôi đang làm sai. Thứ ba chắc chắn là không lý tưởng vì phạm vi ảnh hưởng của nó rộng hơn nhiều so với người ta có thể thực sự mong muốn. Có thực sự không có lựa chọn tốt hơn?
Iszi

@Iszi: Liên quan đến tùy chọn đầu tiên: Tôi không nói về việc nhập công thức hai lần. Theo câu hỏi ban đầu, tôi đang nói về một tình huống Q1chứa công thức (thực sự dài) và A1chứa =Q1; chúng tôi muốn thay đổi A1thành =IF(Q1<>"", Q1, "")cái mà bạn không bao giờ cần phải thay đổi nữa. Có thực sự không có lựa chọn nào tốt hơn không? Vâng Vâng, câu hỏi này đã nhàn rỗi trong chín tháng, và đây là tất cả những gì đã được đăng. Nếu những câu trả lời này không đủ tốt cho bạn, hãy đăng câu hỏi mới hoặc đặt tiền thưởng cho câu hỏi này.
Scott

Điều đó ít nhiều giống nhau. Mặc dù nó giải quyết được một số vấn đề khó khăn khi phải khắc phục hai trường hợp của một công thức trong một ô, nhưng nó cũng làm phức tạp mọi thứ một chút bằng cách thêm một ô hoặc nhóm tế bào khác (không cần thiết) vào hỗn hợp. Thật không may, tôi cho rằng thực sự không có câu trả lời "đẹp và sạch" nào cho việc này.
Iszi

Tôi đã đăng một câu hỏi liên quan một lúc và câu trả lời đáng giá duy nhất khác với những gì ở đây liên quan đến một kịch bản VBA.
Iszi

4

NẾU dữ liệu tham chiếu của bạn chỉ là loại số (không phải văn bản) hoặc trống và bạn có thể có 0, thì đây là cách tiếp cận ưa thích của tôi, chỉ nhập công thức một lần. Phải thừa nhận rằng, một cách hơi gián tiếp, nhưng tốt nhất tôi nghĩ vì:

  • bạn không cần thêm ô để đặt công thức vào và sau đó tham chiếu các ô thứ hai
  • bạn không cần phải gõ công thức hai lần
  • phương pháp này phân biệt giữa một giá trị 0 và một ô trống
  • không yêu cầu VBA
  • không yêu cầu Phạm vi được đặt tên

Sự sụp đổ : Nếu bạn cần dữ liệu văn bản trả về, điều này sẽ không hoạt động. Đối với dữ liệu văn bản, phương pháp ưa thích của tôi là sử dụng định dạng số như được đề cập trong các câu trả lời khác ở trên.

=IFERROR((A1 & "") * 1,"")

Trong trường hợp này, A1 có thể được thay thế bởi bất kỳ ô nào, bao gồm một trang tính khác, sổ làm việc hoặc INDIRECT ().

Lưu ý về cách thức hoạt động của nó:
IFERROR () - đối số thứ hai được đặt thành chuỗi trống, vì vậy nếu xảy ra lỗi, chúng tôi sẽ nhận được một chuỗi trống. Vì vậy, chúng ta cần đảm bảo nếu ô nguồn trống, lỗi được kích hoạt.

Phương thức số : Chuỗi số hóa giá trị nguồn, sau đó nhân với 1. Chuỗi emtpy bằng chữ * 1 = #VALUE, Chuỗi có số được tự động chuyển thành số và không xảy ra lỗi.


Hấp dẫn. Tại sao bạn nghĩ rằng bạn cần "" & A1 & ""? Khi nào điều đó tạo ra kết quả khác nhau từ A1 & ""hoặc "" & A1?
G-Man nói 'Phục hồi Monica'

@ G-man: chính xác, và thích hợp hơn. Cảm ơn tôi đã cập nhật câu trả lời.
rayzinnz

4

Có một mẹo khác: đặt ô trống soucre thành công thức ="". Xem mô tả chi tiết tại đây.


Đây là giải pháp hoàn hảo cho tôi vì các ô tôi tham chiếu ít hơn các ô tham chiếu đến chúng. Cảm ơn!
Bộ

2

Tôi cũng không tìm thấy giải pháp nào tốt hơn giải pháp của Scott.

Nhưng kết hợp với cách tiếp cận từ đây, nó có thể chịu đựng được, tôi nghĩ:

http://www.ozgrid.com/Excel/named-form Formula.htmlm

Hãy nói rằng tôi có công thức như thế này

= IFERROR( INDEX(INDIRECT("EsZkouska");
  SMALL(IF((INDEX(INDIRECT("EsZkouska");;1‌​;1)="ČSN721180")*(INDEX(INDIRECT("EsZkouska");;9;1)="RC_P_B");
  ROW(INDIRECT"EsZkouska"))-MIN(ROW(INDIRECT("EsZkouska")))+1;"");1);17;1);"")

Công thức này đọc giá trị ô từ một bảng dữ liệu bằng cách sử dụng chọn có điều kiện và trình bày chúng trên một bảng khác. Tôi không có quyền kiểm soát hình thành tế bào trên bảng dữ liệu.

Tôi đi tới Chèn> Tên> Xác định và trong "Tên trong sổ làm việc" Tôi tạo Tên mới "RC_P_B". Sau đó, vào trường "Tham chiếu đến" tôi sao chép công thức của mình (không có {} ký tự - đó là công thức mảng).

Sau đó, bạn có thể sử dụng công thức của Scott mà không phải lặp lại toàn bộ văn bản công thức:

 {=IF(RC_P_B<>""; RC_P_B;"---")}

Tôi tin rằng điều này là tốt hơn để sao chép toàn bộ công thức.


2

Tôi đơn giản không sử dụng một công thức để khắc phục vấn đề này. Tất cả những gì tôi làm là định dạng có điều kiện các ô thành phông chữ màu trắng nếu giá trị ô bằng 0.


5
Điều này có vấn đề rõ ràng với các ô có giá trị 0 hợp pháp.
Dmitry Grigoryev

Và nó cũng có nhược điểm là làm chậm các tính toán, đặc biệt là đối với các bảng tính lớn, vì các công thức định dạng có điều kiện là "siêu" dễ bay hơi. (Chúng cũng được đánh giá mỗi khi màn hình được sơn lại.)
robinCTS

1

Nếu ô được liên kết không phải là số, bạn có thể sử dụng câu lệnh IF với ISTEXT:

=IF(ISTEXT(Sheet1!A2), Sheet1!A2, "")

1
Nhưng nếu ô được tham chiếu ( Sheet1!A2, trong ví dụ của bạn) chứa một số, thì ô này sẽ hiển thị một chuỗi rỗng.
Scott

Vâng, không rõ câu hỏi về dữ liệu nào trong ô được tham chiếu. Tôi hình dung nếu đó là số thì anh ta sẽ muốn số không.
Brad Patton

1

Tôi từ lâu đã tìm kiếm một giải pháp tao nhã cho vấn đề này.

Tôi đã sử dụng công thức = if (a2 = "", "", a2) trong nhiều năm, nhưng tôi thấy nó hơi cồng kềnh.

Tôi đã thử đề xuất ở trên = a2 & "" và mặc dù có vẻ như nó hoạt động nhưng nó hiển thị một số thực sự là văn bản để định dạng số không thể được áp dụng và không có hoạt động thống kê nào hoạt động, chẳng hạn như sum, trung bình, trung bình, v.v. những con số bạn đang tìm kiếm này không phù hợp với hóa đơn.

Tôi đã thử nghiệm với một số chức năng khác và tìm thấy những gì tôi nghĩ là giải pháp thanh lịch nhất cho đến nay. Tiếp tục ví dụ trên:

= CELL ("nội dung", A2)

trả về một giá trị số có thể được định dạng dưới dạng số và nó trả về một khoảng trống khi ô được tham chiếu trống. Vì một số lý do, giải pháp này dường như không xuất hiện trong bất kỳ đề xuất trực tuyến nào tôi tìm thấy, nhưng nó


1
Tôi vừa thử cái này trong Excel 2013. Khi A2trống, cái này sẽ hiển thị 0. Bạn có chắc chắn bạn không làm gì với định dạng?
Scott

1

Giải pháp cho Excel 2010:

  1. Mở "Tệp"
  2. Nhấn "Tùy chọn"
  3. Nhấp vào "Nâng cao"
  4. Trong "Tùy chọn hiển thị" cho bảng tính này "BBBB"
  5. Bỏ chọn hộp "Hiển thị giá trị 0 cho các ô có giá trị 0".

Tôi đã nói điều này trong (tùy chọn thứ ba)  câu trả lời của tôi .
Scott

0
Public Function FuncDisplayStringNoValue(MyCell As Variant) As String

Dim Result As Variant

If IsEmpty(MyCell) Then

   FuncDisplayStringNoValue = "No Value"

Else
   Result = CDec(MyCell)

   Result = Round(Result, 2)

   FuncDisplayStringNoValue = "" & Result

   End If

End Function


-1

Những gì làm việc cho tôi trong Office 2013 là:

=IF(A2=""," ",A2)

Trong đó trên tập trích dẫn đầu tiên không có khoảng trắng, và trên tập thứ hai có khoảng trắng.

Hi vọng điêu nay co ich


Tại sao bạn cần không gian trong bộ dấu ngoặc đơn thứ hai? Không =IF(A2="", "", A2)hoạt động tốt như vậy? Làm thế nào mà khác với =IF(A2<>"", A2, "")? Vậy thì khác với câu trả lời được bình chọn cao nhất, được đưa ra từ hai năm trước như thế nào?
G-Man nói 'Phục hồi Monica'

-1

Tôi đã có một vấn đề tương tự, và tôi nghĩ rằng tôi đã tìm thấy một phương pháp cho bạn. Nó đã sửa các vấn đề của tôi.

Nếu bạn muốn cột C tham chiếu cột A và chỉ viết công thức cho ô tham chiếu, bạn sẽ sử dụng cột này và kéo xuống cột.

=A1

Tuy nhiên, có thể có các ô nguồn trong cột A trống và cần để trống trong các ô tham chiếu trong cột C, bạn có thể sử dụng ô này và kéo cột xuống.

=T(A1)

Theo định dạng ô, tham chiếu (cột C) sẽ cần phải chung chung.


Than ôi, đây là một câu hỏi lái xe - OP đã đến với Super User (gần ba năm trước), đã hỏi một câu hỏi này và không bao giờ quay lại. Vì vậy, chúng tôi có thể không bao giờ biết chi tiết về tình hình của anh ấy . Nhưng, một chức năng chính (nếu không phải chính ) của Excel là để crunch số. Nếu dữ liệu nguồn (cột A, trong ví dụ của bạn) chứa số, câu trả lời của bạn không thể điền vào các ô mục tiêu với dữ liệu số.
Scott

Đảm bảo ô của bạn hình thành trong các ô có chứa công thức = T () là Chung chứ không phải là Văn bản. Bởi vì nơi tôi đã sử dụng nó, nó hoàn toàn hiển thị số.
Sẽ dự đoán

Tôi đã kiểm tra. Đó là Đại tướng, và nó đang trống. (Excel 2013)
Scott

Vấn đề có thể là bạn đang sử dụng 2013, câu trả lời của tôi là cho năm 2010
Will Prater

Đã có câu trả lời (hiện đã bị xóa; bạn chỉ có thể thấy câu trả lời nếu đại diện của bạn là 0010000) đã báo cáo rằng điều này cũng không hoạt động trong Excel 2010.
Scott

-1

Dung dịch:
=IF('Wk1 Data-replace w dt bgn & end'!C2>0, 'Wk1 Data-replace w dt bgn & end'!C2, "")

Giải thích:
Để giải quyết vấn đề này, tôi đã sử dụng hai bộ Iflệnh.

Phần một của lệnh:
Tôi đã bảo ô hiển thị nội dung của ô tham chiếu nếu ô tham chiếu chứa dữ liệu (Excel diễn giải đây là ô có giá trị lớn hơn 0)

Phần hai của lệnh:
Tôi đã nói với nó cách ứng xử nếu không có dữ liệu; "" có nghĩa là để trống

Lưu ý: Wk1 Dữ liệu thay thế w dt bgn & end '! C2 là ô tham chiếu của tôi.


(1) Điều này sẽ hiển thị trống ngay cả khi ô được tham chiếu chứa 0 hoặc số âm. Câu hỏi muốn ô liên kết chỉ trống nếu ô được tham chiếu trống . (2) Nếu bạn thực hiện thay đổi rõ ràng và thay đổi điều này thành =IF('Wk1 … bgn & end'!C2<>"", 'Wk1 … bgn & end'!C2, ""), nó sẽ trở thành tương đương với câu trả lời đã được đưa ra khoảng bốn lần.
G-Man nói 'Phục hồi Monica'

-1

Tất cả các giải pháp này quá phức tạp đối với tôi và tôi nhận ra rằng điều này có thể không khả thi cho tất cả các ứng dụng nhưng tôi chỉ điền vào trường nguồn trống và tôi có một khoảng trống trong trường đích.


1
Làm thế nào để bạn điền vào một ô với một khoảng trống, và ý nghĩa của một ô trống là gì?
fixer1234

Xin lỗi tôi nên nói một nhân vật không gian. Bằng cách đó, tế bào không thực sự trống rỗng. Ô nguồn có một không gian trong đó và không gian được sao chép vào ô đích.
John Alonso

-1

Tôi có một giải pháp làm việc cho tôi:

IF(cell reference="","",cell reference)

Giải trình:

""bằng với ô trống hoặc ô trống. Bây giờ tôi chỉ xoay nếu xung quanh. Nếu ô trống, hãy để trống, nếu không hãy sử dụng tham chiếu ô.


Điều này về cơ bản giống như giải pháp đầu tiên trong superuser.com/a/515941
Arjan

-2

Chuyển đến Định dạng ô.

Sau đó chọn định dạng tùy chỉnh và nhập vào như sau: 0;-0;;@


2
Bạn có thể giải thích điều này không? Cảm ơn.
fixer1234

1
Điều này thực hiện khá giống với tùy chọn thứ hai trong câu trả lời của tôi cho câu hỏi này («Đặt định dạng Số Số Số của các ô được liên kết của bạn thành Trực tuyến Tùy chỉnh : General;–General;.») - cụ thể là (a) nếu giá trị là số dương, hiển thị giá trị tuyệt đối nguyên của nó; (b) nếu giá trị là số âm, hiển thị giá trị tuyệt đối nguyên của nó, đứng trước -; (c) nếu giá trị bằng 0, không hiển thị gì ; và (d) nếu giá trị không phải là số, hiển thị giá trị văn bản của nó. Tiết (Cont'd)
Scott

1
(Tiếp), Tuy nhiên, phiên bản này có nhược điểm (nghĩa là lỗi), nó làm tròn các số không nguyên sang số nguyên gần nhất. ( Generalcung cấp cho bạn định dạng mặc định cho các số, bao gồm các chữ số thập phân nếu cần (nhưng không bao gồm -ký hiệu).) Ngoài ra, cuối cùng ;@dường như là không cần thiết (nghĩa là nó có vẻ là mặc định), vì câu trả lời của tôi hiển thị chính xác các giá trị văn bản mà không sửa đổi.
Scott
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.