99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀妙用“連環(huán)引用法”實現(xiàn)二維表轉一維表
妙用“連環(huán)引用法”實現(xiàn)二維表轉一維表
2015-12-25
收藏

妙用“連環(huán)引用法”實現(xiàn)二維表轉一維表

大神chandoo最近有一個貼,介紹如何用sumifs對不規(guī)范的表格進行條件求和,技巧非常棒,這里不細述,要點是sumifs的計算區(qū)域和條件區(qū)域可以有行或列上的偏移,并不一定要在同行或同列上,只要數(shù)組結構一致即可。見這里

但他那個貼的根本問題是數(shù)據(jù)表格不規(guī)范,不便于后續(xù)函數(shù)統(tǒng)計。Structure is everything,所以說你必須有良好的工作習慣,把表格設計、錄入規(guī)范,后面的工作才好做。
那怎么把貼中的不規(guī)范表格轉換為規(guī)范的表格呢?
chandoo在新貼中介紹了兩種方法,一是公式法,一是vba法,見這里。vba完全是不必要,公式法是:
=IFERROR(INDEX(data,2*(INT(J5/7))+1,MOD(J5,7)+1),"")
=IFERROR(INDEX(data,2*(INT(J5/7)+1),MOD(J5,7)+1),"")
這個公式當然很棒,但太費腦了,一般人要想出、甚至只是看懂都不知要死多少腦細胞,我就根本不想琢磨。
這里介紹我自己常用的“連環(huán)引用法”,我們在圖表仿的002、015、024A中都有用到和介紹過這個技巧。這里的情況和024A類似,不過方向是水平的。

如圖,要把不規(guī)范的二維表格轉換為一維表格,我們在原表右側輸入公式:
I4:=B6
I5:=B7

然后選中I4:I5,向下復制到I15;再選中I4:I15向右復制到AQ列。因為原表有6*7=42列,所以到AQ列,也可直接拖到右邊都是0出現(xiàn)為止。
這時觀察復制出來的結果,你會發(fā)現(xiàn)圖中綠色框線內B4:AL5區(qū)域正是我們想要的結果!
現(xiàn)在是橫的,我們只要復制B4:AL5,再找個空白地方,選擇性粘貼,值,旋轉,確定,就得到了縱向的一維表格!

這簡直就是一個魔術,其中的原理,就在于一環(huán)套一環(huán)的連環(huán)引用,你可以琢磨一下。
這個方法只是最簡單的鼠標操作,完全不用動腦筋,但簡單、巧妙之極,效率也非常高,分享給大家。我們可以稱之為“連環(huán)引用法轉二維表為一維表”,橫向、縱向都可以使用。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師考試動態(tài)
數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }