Câu trả lời:
Với đoạn trích nhỏ này bạn có thể làm điều đó.
function isFormula(startcol, startrow) {
// prepare string
var str = String.fromCharCode(64 + startcol) + startrow;
// retrieve formula
var fCell = SpreadsheetApp.getActiveSpreadsheet()
.getRange(str).getFormula();
// return false if empty else true
return fCell ? true : false;
}
Trong câu trả lời này , Tom Horwood đã tìm ra cách để tránh việc sử dụng dấu ngoặc kép.
Thêm tập lệnh trong Công cụ> Trình chỉnh sửa tập lệnh và nhấn nút lỗi để kích hoạt xác thực.
Tôi đã tạo một tệp ví dụ cho bạn: Kiểm tra Công thức
isFormula(a1)
? (trong MS excel, nó sẽ là một hàm có tham số phạm vi)
Sử dụng hàm tích hợp ISFORMULA () .
Tôi nghĩ rằng tôi vừa phát hiện ra một công thức không có giấy tờ trong Google Sheets mới. @Pnuts đã nói rằng CELL
công thức không hoạt động (một phần vì nó chỉ có sẵn trong Google Sheets mới), vì vậy tôi đã sao chép mã vào Google Sheet mới. Một lỗi đã được nêu ra, cho tôi biết công thức (tùy chỉnh) của tôi chỉ chấp nhận một đối số chứ không phải hai đối số:
Đổi tên isFormula
thành một cái gì đó khác, dẫn đến một chức năng tùy chỉnh làm việc. Sau đó, tôi đã tạo một Google Sheet khác và sử dụng isFormula
công thức. Công thức không xuất hiện trong tự động hoàn thành, nhưng nó đang hoạt động:
Vì vậy, nếu công thức có sẵn trên Google Sheets mới, thì đây sẽ là câu trả lời tốt nhất:
=isFormula(A1)
Chỉ có sẵn trong Google Sheets mới. Tôi đã hỏi một vài người khác để xác nhận công thức mới và nó đã được xác nhận. Vì nó không có giấy tờ, việc thực hiện nó không chắc chắn và nó có thể biến mất. Các ARRAYFORMULA
không hoạt động khi sử dụng với công thức mới này.
Tôi đã tạo một tệp ví dụ cho bạn: isFormula
Có vẻ như có một chức năng tích hợp ẩn ISFORMULA()
từ Google. Tôi nhận ra khi tôi xóa chức năng của mình và vẫn đang làm việc. Tôi đã thử nó trong một bảng tính mới và vẫn hoạt động. Không có vấn đề bộ nhớ cache.
isFormula2("A1")
. Vì vậy, tôi đã cố gắng tạo ra một phiên bản mới của nó như thế này:function isFormula2(cell) { return (cell.getFormula())!=""; }
và tôi hy vọng nó có thể gọi được bằng cách sử dụngisFormula2(A1)
nhưng điều này dường như không hoạt động và khi cố gắng gỡ lỗi, nó hiển thịcell
như không xác định ... mọi ý tưởng tại sao lại như vậy và nếu mọi thứ có thể thay đổi để nó sẽ làm việc vớif(A1)
thay vìf("A1")
?