[[20250121165513]] 『チェックボックスを条件に、自動転記をしたい。』(ramushia) ページの最後に飛ぶ

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

 

『チェックボックスを条件に、自動転記をしたい。』(ramushia)

文章で正確な説明をする自信がないので画像を作りました。

↓これをやりたいです↓
https://imgur.com/a/yVaicQS

元データは1つの日付は1行にまとまっていますが、転記する際は買った品物ごとに行を分けたいのですが、関数がわからず困っております。。。

不明点がございましたら仰ってください
どなたかよろしくお願いいたします・・・!!

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


 >関数がわからず困っております。。。

画像見てませんが、関数?数式?
どっちにしろ数式は転機などしません
条件に合ったものを表示やセル参照しているだけです
(義丹) 2025/01/21(火) 17:34:34


得体の知れないリンクは踏みたくないので、表形式で説明してください
他のスレッド見たらみなどうやって質問してるかわかります
(不明点) 2025/01/21(火) 17:42:46

 ↓再現図

 「買い物」シート
 [___]|___A____|___B____|___C____|___D____|___E____|___F____|___G____|
 [  1]|        |        |        |        |        |   支払い方法    |
 [  2]|日付    |りんご  |みかん  |ぶどう  |バナナ  |現金    |カード  |
 [  3]|1月1日  |     5個|        |     2個|        |   ☑   |   ☐   |
 [  4]|1月4日  |     6個|     4個|        |        |   ☐   |   ☑   |
 [  5]|1月6日  |        |        |     3個|     1個|   ☑   |   ☐   |

 チェックボックスを条件に、シートを分けて自動転記

 「支払い(現金)」シート                                  「支払い(カード)」シート
 [___]|___A____|___B____|___C____|___D____|___E____|       [___]|___A____|___B____|___C____|___D____|___E____|
 [  1]|日付    |品目    |個数    |単価    |計      |       [  1]|日付    |品目    |個数    |単価    |計      |
 [  2]|1月1日  |りんご  |     5個|        |        |       [  2]|1月4日  |りんご  |     6個|        |        |
 [  3]|1月1日  |ぶどう  |     2個|        |        |       [  3]|1月4日  |みかん  |     4個|        |        |
 [  4]|1月6日  |ぶどう  |     3個|        |        |
 [  5]|1月6日  |バナナ  |     1個|        |        |

(白茶) 2025/01/21(火) 18:17:51


コメントありがとうございます。
また、白茶さんわざわざテキストに直していただきありがとうございます!
このような関数を組むのは難しいでしょうか、、
(ramushia) 2025/01/22(水) 08:02:12

>得体の知れないリンク

imgurは、ネット最大規模のオンラインサイトで
 画像共有と画像管理サービスを行っています。

こちらでも過去何度も利用されているを見かけているし
 それなりに有名どころの画像共有サイトです。

ご自分が知らないからって
 「得体のしれない」はイイスギ。

個人的には、テキスト形式が望ましい思いますが
 こちらで紹介しているVBAでテキスト形式に変換する手間を考えると
 画像で示すのが悪いことだとは思わない。

(ROMx2) 2025/01/22(水) 08:18:11


 PowerQueryでやる方が簡単そうですけど、いかがでしょう
(´・ω・`) 2025/01/22(水) 12:33:40

 あら・・・
 これ、ひょっとしてチェックボックスはフォームコントロールのヤツかも。

 画像だけなので断定出来ないですが、
 なんか1か所だけ微妙に横位置がズレてる気がします。(気のせいか?)

(白茶) 2025/01/22(水) 15:11:19


 憶測で遊んでみたっス ^^;

    With Worksheets.Add(after:=ActiveSheet)
        .Name = "買い物"
        .Range("A2:G2") = [{"日付","りんご","みかん","ぶどう","バナナ","現金","カード"}]
        .Range("F1") = "支払い方法"
        .Range("F1:G1").HorizontalAlignment = xlHAlignCenterAcrossSelection
        .Columns(1).NumberFormatLocal = "m月d日"
        .Columns("B:E").NumberFormatLocal = "0個"
        .Range("A3:E5") = [{45658,5,"",2,"";45661,6,4,"","";45663,"","",3,1}]
        Dim c As Range
        For Each c In .Range("F3:G5").Cells
            With .CheckBoxes.Add(c.Left, c.Top, c.Width, c.Height)
                .LinkedCell = c.Address
                .Caption = ""
            End With
        Next
        .Range("F3:G5") = [{TRUE,FALSE;FALSE,TRUE;TRUE,FALSE}]
        .Range("F3:G5").Font.Color = &HBFBFBF
        .Range("I3:L5").FormulaR1C1 = "=IF(RC6*RC[-7],ROW()*10+COLUMN(RC[-7]))"
        .Range("M3:P5").FormulaR1C1 = "=IF(RC7*RC[-11],ROW()*10+COLUMN(RC[-11]))"
        .Range("I3:P5").Font.Color = &HBFBFBF
    End With
    With Worksheets.Add(after:=ActiveSheet)
        .Name = "支払い(現金)"
        .Range("A1:E1") = [{"日付","品目","個数","単価","計"}]
        .Columns(1).NumberFormatLocal = "m月d日"
        .Columns("C").NumberFormatLocal = "0個"
        .Range("A2").Formula = "=INDEX(買い物!$A:$A,INT($G2/10))"
        .Range("B2").Formula = "=INDEX(買い物!$A$2:$E$2,MOD($G2,10))"
        .Range("C2").Formula = "=INDEX(買い物!$A:$E,INT($G2/10),MOD($G2,10))"
        .Range("G2").Formula = "=SMALL(買い物!$I:$L,ROW()-1)"
        .Range("G2").Font.Color = &HBFBFBF
        .Range("A2:G10").FillDown
    End With
    With Worksheets.Add(after:=ActiveSheet)
        .Name = "支払い(カード)"
        .Range("A1:E1") = [{"日付","品目","個数","単価","計"}]
        .Columns(1).NumberFormatLocal = "m月d日"
        .Columns("C").NumberFormatLocal = "0個"
        .Range("A2").Formula = "=INDEX(買い物!$A:$A,INT($G2/10))"
        .Range("B2").Formula = "=INDEX(買い物!$A$2:$E$2,MOD($G2,10))"
        .Range("C2").Formula = "=INDEX(買い物!$A:$E,INT($G2/10),MOD($G2,10))"
        .Range("G2").Formula = "=SMALL(買い物!$M:$P,ROW()-1)"
        .Range("G2").Font.Color = &HBFBFBF
        .Range("A2:G10").FillDown
    End With
    Worksheets("買い物").Select

(白茶) 2025/01/22(水) 21:11:10


 関数でやってみた。
 参考にしてください。

 >不明点がございましたら仰ってください
 買い物は4件だけではないでよね。
 増えたら列を追加するのですか。

 と言うことで買い物が増えたことを考えて買い物シートを下記のように変更。

     |[A]    |[B]   |[C]|[D]    |[E]     |[F]|[G]|[H]|[I]|[J]    |[K]   |[L]|[M]|[N]    |[O]   |[P]
 [1] |買い物 |      |   |       |        |   |   |   |   |現金   |      |   |   |カード |      |   
 [2] |日付   |品目  |数 |現金   |カード  |   |   |   |   |日付   |品目  |数 |   |日付   |品目  |数 
 [3] |1月1日 |りんご|  5|☑TRUE |☐FALSE |  1|   |   |   |1月1日 |りんご|  5|   |1月4日 |りんご|  6
 [4] |1月1日 |ぶどう|  2|☑TRUE |☐FALSE |  2|   |   |   |1月1日 |ぶどう|  2|   |1月4日 |みかん|  4
 [5] |1月4日 |りんご|  6|☐FALSE|☑TRUE  |   |  1|   |   |1月6日 |ぶどう|  3|   |1月10日|メロン|  2
 [6] |1月4日 |みかん|  4|☐FALSE|☑TRUE  |   |  2|   |   |1月6日 |バナナ|  6|   |1月10日|りんご|  3
 [7] |1月6日 |ぶどう|  3|☑TRUE |☐FALSE |  3|   |   |   |1月10日|メロン|  4|   |1月12日|ぶどう|  6
 [8] |1月6日 |バナナ|  6|☑TRUE |☐FALSE |  4|   |   |   |1月12日|バナナ|  5|   |1月20日|いちご|  7
 [9] |1月10日|メロン|  2|☐FALSE|☑TRUE  |   |  3|   |   |1月29日|レモン| 10|   |1月20日|スイカ|  8
 [10]|1月10日|りんご|  3|☐FALSE|☑TRUE  |   |  4|   |   |1月30日|トマト| 11|   |1月28日|もも  |  9
 [11]|1月10日|メロン|  4|☑TRUE |☐FALSE |  5|   |   |   |       |      |   |   |       |      |   
 [12]|1月12日|バナナ|  5|☑TRUE |☐FALSE |  6|   |   |   |       |      |   |   |       |      |   
 [13]|1月12日|ぶどう|  6|☐FALSE|☑TRUE  |   |  5|   |   |       |      |   |   |       |      |   
 [14]|1月20日|いちご|  7|☐FALSE|☑TRUE  |   |  6|   |   |       |      |   |   |       |      |   
 [15]|1月20日|スイカ|  8|☐FALSE|☑TRUE  |   |  7|   |   |       |      |   |   |       |      |   
 [16]|1月28日|もも  |  9|☐FALSE|☑TRUE  |   |  8|   |   |       |      |   |   |       |      |   
 [17]|1月29日|レモン| 10|☑TRUE |☐FALSE |  7|   |   |   |       |      |   |   |       |      |   
 [18]|1月30日|トマト| 11|☑RUE  |☐FALSE |  8|   |   |   |       |      |   |   |       |      |   

 J3=IFERROR(INDEX($A:$C,MATCH(ROW(D1),$F:$F,0),COLUMN(A1)),"")
 N3=IFERROR(INDEX($A:$C,MATCH(ROW(D1),$G:$G,0),COLUMN(A1)),"")
 → へコピーそのまま↓へコピー

 F3=IF(D3=TRUE,COUNTIF(D$3:D3,D3),"")
 G3=IF(E3=TRUE,COUNTIF(E$3:E3,E3),"")
 ↓へコピー

 ☑のリンクセルは☑と同じセル
 D3:G18はユーザー定義で「;;;」にして非表示にする
(IT) 2025/01/31(金) 21:06:56

 >画像で示すのが悪いことだとは思わない。

 質問者側のただの手抜きですな
 回答側がテストデータを手入力していちいち作らにゃならんのですか・・・・・
 回答する側もちゃんと動くかテストしたりするんだが・・・・・・
(エゴ) 2025/02/01(土) 11:00:08

コメント返信:

[ 一覧(最新更新順) ]


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