excel生成笛卡尔积的形式

  • 由于要在数据库中插入一系列的数据,故用到excel来进行处理

  • 首先我们有两列数据,如图左边标红部分,右边为最终效果:

    excel生成笛卡尔积的形式

  • 创建辅助列D列,主要用于后面的快速填充,操作方法:在D2中输入1,选择“填充”功能的等差序列,终止值为A列行数与B列行数的乘积,此处为18x55=990

    excel生成笛卡尔积的形式

  • 在E列中编辑公式,E2单元格中输入:

    =INDEX(A:A,INT((ROW(A2)-2)/(COUNTA(B:B)-1))+2)

    公式解读:

    index函数用于返回a列中某行的值 ,所以重点在计算正确的返回行数,Row()用于返回当前行的行数,counta用于计算当前列中有数据的行数,因此我们利用两数相除取整的方法实现正确位置的读取,其中标粗部分可根据实际情况进行调整,主要取决于标题行或数据上面的行数。

  • 双击E2右下角的黑十字符号进行自动填充,现在体会到辅助列的作用了吧,否则需要手工拖放,如果数据量大的话特别不方便。

  • 同理在F2列中输入以下公式:

    =INDEX(B:B,MOD(ROW()-2,COUNTA(B:B)-1)+2)

    公式解读:

    基本原理同上,不过此处使用了MOD取余,而非int取整,大家好好体会一下,主要是因为需要多次循环的原因,而不是像E列中是向下递加的。

  • 双击F2右下角的黑十字符号进行自动填充,实现我们的最终效果。