我最近分享了一些關於條件格式應用的例子,而且這些應用還不是常規的用法,我是想通過這些創意分享,讓大家知道一個簡單的工具,不僅可以實現很多奇特的效果,甚至還可以幫助我們做更多的事情,比如我今天要分享的:
用條件格式解數獨<strong>(既然說到了數獨,肯定就不會只說條件格式,文章結尾有福利,喜歡數獨的朋友注意哦)上圖的演示,是我很久以前製作的(那個時候還用的2003版Excel),今天我給大家說說這個效果是怎麼做出來的(今天用的文件是增強版,增加了更多的功能,見下圖)。
下面開始,步入正題:
表格佈局設計
按上圖所示,將A列至I列的列寬設置成1cm、1行至9行的行高設置成1cm,加上邊框;
另外將表格的其他部分,也按圖片所示,全部做好,然後進入下一步。
設置條件格式
1、先理清楚數獨的規則
①每行、每列填入1到9的不重複數;
②每個小九宮格中,分別填入1到9的不重複數;
那麼,我們就利用上面兩個規則,作為設置表格的條件格式,讓可以填寫數據的位置自動現身。
比如:當第一行內已經有1了,第一行的其餘空格,就不能再填寫1,就是利用規則,把不能填寫的格子排除掉,具備填寫條件的格子凸顯出來。
2、設置格式<strong>(所有的公式,在我分享的文件裡都有,文章末尾有獲取方法)
我們要設置三個提醒的條件格式:
①標註已有數字,用藍色;②標註可填區域,用青色;③標記重複數,用紅色(不符合規則的數,即錯誤結果)
我們來設置第一條:
①標註已有數字:選擇A1:I9區域(注意活動單元格,什麼是活動單元格:就是你選中一個區域後,輸入內容,看內容出現在哪個單元格,那個單元格就是活動單元格,如圖所示,A1就是活動單元格)。
選中區域後,在開始→樣式→條件格式→新建規則→使用公式確定要設置格式的單元格→輸入公式,設置格式(後續的都是這樣操作,只是公式有差異,格式有不同。以後的內容不再贅述,就直接說公式了)
<code>條件格式公式為:=A1=$O$5/<code>
這裡的A1是活動單元格,O5是目前要填寫的數。公式理解為:當活動單元格的數是,活動單元格填充藍色。
這裡還還需要注意:單元格絕對引用、相對引用、混合引用,可以查看我之前分享的文章。
下面的內容兩個條件格式的公式,更要注意混合引用的使用。
②標註可填區域,用青色。設置的公式,直接看下圖(注意紅色加粗的內容):
③標記重複數,用紅色。設置的公式,直接看下圖(注意紅色加粗的內容):
④,為了方便查看剩餘未填寫的數據,在L6至T8區域,也設置了條件格式(見下圖),即當所有數都填寫完成後,單元格由黃色填充變為無色。
製作完成
完成上面的操作,基礎的表格製作和格式設置就完成,在A1至I9區域填入數獨題目,選擇本次填寫的數字(下拉菜單中選),表格中就可以給予提示了,就可以像文章開始那樣,解答數獨了。
<strong>……分割線……到此,要分享的條件格式內容已完成,下面是關於數獨的……分割線……
喜歡數獨的朋友都知道,數獨的解法很多,比如基礎基礎摒除法、區塊摒除法、撐點定位法、唯一解法、唯餘解法、唯一候選數法、餘數測試法、矩形頂點法(X-Wing解法)等等。
<strong>上面的條件公式,只實現了基礎基礎摒除法、區塊摒除法、撐點定位法這三種解法,所以還不夠。
在這個文件中,除了用條件格式涉及到的三種解法,還通過VBA算法,增加了:
【餘數測試法】即【測試解法】(測試解法會生成單元格批註,如果測試解法失敗,需要刪除批註,可以用【清除批註】功能);
【暴力解法】,顧名思義,就是從第一個空格第一種可能性開始,通過循環,遍歷所有的可能性,直到找出正確的結果(此法特別耗時,尤其是在解高難度的題目時)。
【題庫】:設置題目的,時為了方便導入其他的數獨題目。
【隨機出題】:電腦隨機出題,但還不能設置難度,所出的題目,用以上的方法,基本都可以解開;
【題目還原】:如果解題失敗,可以還原題目,從頭再來。
【本題加入題庫】、【從題庫中刪除】:對題庫操作,增加或刪除題目(對題目的操作,都在這裡,不要在題庫中操作)。需要注意:這裡的刪除題目,不是刪除隨機生成的題目,而是從題庫中調用的題目,例如上圖中選擇的題庫題目是<strong>題目2,即使選擇題目之後又用電腦生成了題目,點【從題庫總刪除】按鈕時,還是會刪除<strong>題目2,放心,所有刪除操作前,都有提示,可以在提示中取消刪除。
沒有設置保存進度的功能,是因為excel文件本省就可以保存數據,下次打開再接著玩就可以了。
另外,通過鼠標點擊L6和T6區域的數字做選擇,直接代替下拉菜單;且可以直接通過左鍵單擊將數字錄入數獨中(只會在空單元格中填入,不會影響已填寫的數據)。見下圖:
導入題目的操作演示如下(演示生成題目的軟件叫《數獨博士》,是一款非常好用的數獨遊戲軟件):
終極功能——專業算法解法(數獨、VBA、Excel愛好者的福利)
這個工具代碼的編寫者,是圈子裡一位非常非常非常厲害的老師(神一樣的級別)。用這個專業算法,基本上不存在解不開的數獨(多種結果的數獨除,用其中某些工具時,可能會出現不停的循環,用的時候稍微注意下。)
這個表格裡面,只有電腦出題,如果需要用這個解其他題目,可以用上面導入題目的方法,將數獨題目導入到我做的文件中,然後複製粘貼過來,即可用這個工具解答。
寫在後面
解數獨,就像玩掃雷一樣,計算的過程才是能帶來成就感的,所以我目前都使用我自制的那個表格,用條件格式,配合餘數測試法、實在不行加上暴力破解,來解答數獨。專業算法解答,直接把答案顯示出來了,反而失去了其中的意義。
<strong>好了。如果需要這個文件,可以關注我,然後私信發送【數獨】,獲取下載鏈接。
閱讀更多 上班下班 的文章