질문하기

Qui's profile - activity

2017-02-03 11:18:40 +0200 받은 배지  정리의 달인
2014-03-28 23:33:14 +0200 받은 배지  자기 주도 학습자 (source)
2014-03-28 23:33:14 +0200 받은 배지  선생님 (source)
2013-07-11 00:09:57 +0200 받은 배지  주목할 만한 질문 (source)
2013-07-11 00:09:57 +0200 받은 배지  유명한 질문 (source)
2013-03-07 18:11:42 +0200 코멘트달린 답변 Sudoku solver, calc internal tokens number exceeded

I see that I don't mentioning that I get error 512, really bad of me. But here are a link to the page where it tells the 512 char limit. https://help.libreoffice.org/Calc/Error_Codes_in_Calc

2013-02-24 12:18:23 +0200 받은 배지  인기있는 질문 (source)
2012-12-13 13:18:04 +0200 질문에 답변하였습니다 Sudoku solver, calc internal tokens number exceeded

Thanks :) Well, I tried to make a suduko (9 rows x 9 column) solver in calc. Now when I changed from swedish to english the problem dissaper, formula got little shorter. But here it is: If '1' is in same row, column or same 3x3 area, do't show '1'. Every small test return '1' if no '1' is found and multiplied together, so if product of multiplication is zero, there is a '1' present.


=IF(IF(ROW()=1,1,ISERROR(VLOOKUP(1,INDIRECT(CONCATENATE(CHAR(64+COLUMN()),1,":",CHAR(65+COLUMN()),ROW()-1)),2,0)))*IF(ROW()=9,1,ISERROR(VLOOKUP(1,INDIRECT(CONCATENATE(CHAR(64+COLUMN()),ROW()+1,":",CHAR(65+COLUMN()),9)),2,0)))*IF(COLUMN()=1,1,ISERROR(HLOOKUP(1,INDIRECT(CONCATENATE("A",ROW(),":",CHAR(63+COLUMN()),ROW()+1)),2,0)))*IF(COLUMN()=9,1,ISERROR(HLOOKUP(1,INDIRECT(CONCATENATE(CHAR(65+COLUMN()),ROW(),":I",ROW()+1)),2,0)))*IF(INDIRECT(CONCATENATE(CHAR(3*INT((COLUMN()-1)/3)+65+MOD(COLUMN(),3)),1+3*INT((ROW()-1)/3)+MOD(ROW(),3)))=1,0,1)*IF(INDIRECT(CONCATENATE(CHAR(3*INT((COLUMN()-1)/3)+65+MOD(COLUMN()+1,3)),1+3*INT((ROW()-1)/3)+MOD(ROW(),3)))=1,0,1)*IF(INDIRECT(CONCATENATE(CHAR(3*INT((COLUMN()-1)/3)+65+MOD(COLUMN(),3)),1+3*INT((ROW()-1)/3)+MOD(ROW()+1,3)))=1,0,1)*IF(INDIRECT(CONCATENATE(CHAR(3*INT((COLUMN()-1)/3)+65+MOD(COLUMN()+1,3)),1+3*INT((ROW()-1)/3)+MOD(ROW()+1,3)))=1,0,1),"1","")

Divided into smaller parts : If this cell is first row, 'return' 1, else search for '1' in this column from row 1 to this row minus one.


IF(ROW()=1,1,ISERROR(VLOOKUP(1,INDIRECT(CONCATENATE(CHAR(64+COLUMN()),1,":",CHAR(65+COLUMN()),ROW()-1)),2,0)))

If row is '9' (last) return '1', else search for '1' in this row plus 1 to row 9


IF(ROW()=9,1,ISERROR(VLOOKUP(1,INDIRECT(CONCATENATE(CHAR(64+COLUMN()),ROW()+1,":",CHAR(65+COLUMN()),9)),2,0)))

then two similar but for columns. After that there are four checks for the four other cells that has not been checked with above formula in 3x3 area.

Search the upper left cell that has not been cheacked earlier


IF(INDIRECT(CONCATENATE(CHAR(3*INT((COLUMN()-1)/3)+65+MOD(COLUMN(),3)),1+3*INT((ROW()-1 ...
(more)
2012-12-12 21:27:43 +0200 받은 배지  편집자 (source)
2012-12-12 19:46:15 +0200 질문하였습니다 Sudoku solver, calc internal tokens number exceeded

Whats the maximum number of characters in libre office calc cell? I use LibreOffice 3.5 build 403 on openSUSE 12.2. When I try to enter quite long formula Libre shorten it from 964 char to 958 in one example, and 982 to 976 chars in an other example. I've tried searching on google but founded nothing usefull. So... two question

  1. Whats the maximum number of characters in a calc cell
  2. If max char is more than 1024, Why do Libre office shorten my formula?

/J

[edit] found that it is 512 chars, but somehow ignored that and allowed little more than that, between 950 and 1000