[[20210428214402]] 『連番を振る関数について』(右近) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『連番を振る関数について』(右近)

お尋ねいたします。
以下のような表があります。
連番列=J,L,N
項目列=K,M,O
項目列を入力すると、左の項目列を参照して連番を自動で振るようにしたいと思います。
J列だけは設定することができました。ただし、J3のみ手入力で入力。できれば、J3から関数設定できればと思っています。
J4=IF(K4="","",IF(K4<>K3,J3+1,IF(K4=K3,J3,COUNTIF($K$3:K3,K3))))
L列、N列にも自動で連番を振るようにしたいのです。
ご教授のほどよろしくお願いいたします。

   J  K       L  M         N  O
3  1  人件費  1  給料      1  給料
4  1  人件費  1  給料      2  通勤手当
5  1  人件費  1  給料      3  超勤手当
6  1  人件費  1  給料      4  特別勤務手当
7  1 人件費  2  退職給付  1  退職金
8  1  人件費  3  法定福利  1  雇用保険
9  1  人件費  3  法定福利  2  社会保険
10 2  事業費  1  消耗品    1  消耗品
11 2  事業費  2  保険料    1  任意保険
・
・

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 >項目列を入力すると、左の項目列を参照して連番を自動で振る
 意味不明。
(?) 2021/04/29(木) 08:59

J列のように、K列を参照して連番を振っているように、L列、N列にも連番を振りたいというものです。
ただ、L列とK列は左右の列を参照するという点がJ列とは異なります。J列はK列のみを参照しています。
(右近) 2021/04/29(木) 09:12

L3 1
L4 =IF(K4=K3,IF(M4=M3,L3,L3+1),1)
以下、下にコピー

N列も同じです。
(γ) 2021/04/29(木) 09:18


γさん、見事に連番を振ることができました。
ありがとうございました。
(右近) 2021/04/29(木) 10:21

解決したようなので、Power Queryの勉強に、場所をお借りします。
回答ではありませんので
質問者さんは無視してください。

連番の振り方は、いつもどおりですが
グループ化の順番がポイントのようです。
(グループ 連番 入れ子)

 '----

 大項目   中項目     小項目
 人件費   給料       給料
 人件費   給料       通勤手当
 人件費   給料       超勤手当
 人件費   給料       特別勤務手当
 人件費   退職給付   退職金
 人件費   法定福利   雇用保険
 人件費   法定福利   社会保険
 事業費   消耗品     消耗品
 事業費   保険料     任意保険

 ↓加工後

 No.1   大項目   No.2   中項目     No.3   小項目
  1     人件費    1     給料        1     給料
  1     人件費    1     給料        2     通勤手当
  1     人件費    1     給料        3     超勤手当
  1     人件費    1     給料        4     特別勤務手当
  1     人件費    2     退職給付    1     退職金
  1     人件費    3     法定福利    1     雇用保険
  1     人件費    3     法定福利    2     社会保険
  2     事業費    1     消耗品      1     消耗品
  2     事業費    2     保険料      1     任意保険

 let
    ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    変更された型 = Table.TransformColumnTypes(ソース,{{"大項目", type text}, {"中項目", type text}, {"小項目", type text}}),
    グループ化された行 = Table.Group(変更された型, {"大項目", "中項目"}, {{"group", each _, type table [大項目=nullable text, 中項目=nullable text, 小項目=nullable text]}}),
    追加されたカスタム = Table.AddColumn(グループ化された行, "カスタム", each Table.AddIndexColumn([group],"No.3",1)),
    削除された列 = Table.RemoveColumns(追加されたカスタム,{"group"}),
    グループ化された行1 = Table.Group(削除された列, {"大項目"}, {{"group", each _, type table [大項目=nullable text, 中項目=nullable text, カスタム=table]}}),
    追加されたカスタム1 = Table.AddColumn(グループ化された行1, "カスタム", each Table.AddIndexColumn([group],"No.2",1)),
    削除された他の列 = Table.SelectColumns(追加されたカスタム1,{"カスタム"}),
    追加されたインデックス = Table.AddIndexColumn(削除された他の列, "No.1", 1, 1, Int64.Type),
    #"展開された カスタム" = Table.ExpandTableColumn(追加されたインデックス, "カスタム", {"カスタム", "No.2"}, {"カスタム.1", "No.2"}),
    #"展開された カスタム.1" = Table.ExpandTableColumn(#"展開された カスタム", "カスタム.1", {"大項目", "中項目", "小項目", "No.3"}, {"大項目", "中項目", "小項目", "No.3"}),
    並べ替えられた列 = Table.ReorderColumns(#"展開された カスタム.1",{"No.1", "大項目", "No.2", "中項目", "No.3", "小項目"})
 in
    並べ替えられた列

(マナ) 2021/04/29(木) 19:39


2021/04/29(木) 09:18、γさんのご教授により解決していたのですが、
これに一つ条件を追加して、N列の連番を修正したいと思うのです。
P列の該当セルに何かしらの入力が成されたら、以下のような連番をふるように修正したいのです。
今一度、ご教授いただきたく、よろしくお願いいたします。

  J  K       L  M         N  O              P
3  1  人件費  1  給料      1  給料
4  1  人件費  1  給料      -  通勤手当      中止
5  1  人件費  1  給料      2  超勤手当
6  1  人件費  1  給料      3  特別勤務手当
7  1 人件費  2  退職給付  1  退職金
8  1  人件費  3  法定福利  1  雇用保険
9  1  人件費  3  法定福利  2  社会保険
10 2  事業費  1  消耗品    1  消耗品
11 2  事業費  2  保険料    1  任意保険
・
・
(右近) 2021/06/15(火) 11:33

適当です。

 =IF(P3<>"","-",COUNTIFS($J$3:J3,J3,$L$3:L3,L3,$P$3:P3,""))

(余計なお世話) 2021/06/15(火) 12:59


ありがとうございます。
早速試してみましたが、うまく連番とならず、ずっと「1」となってしまいます。
(右近) 2021/06/15(火) 13:08

 >ずっと「1」となってしまいます。
 N3セルに入れて試してみましたが、例示通りの結果になりましたけど?

 ついでに、J列とL列の式  ※2行目は見出しだとして
 >できれば、J3から関数設定できれば
 3行目から

 J3 =IF(K3="","",N(J2)+(K3<>K2))
 L3 =IF(M3="","",IF(K3<>K2,1,L2+(M3<>M2)))
 下コピー

 よくわかってませんけど、これも例示通りにはなります。

 以上、参考まで
(笑) 2021/06/15(火) 13:54

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.