[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『改行データに対応するコードを受動で入力したい。』(さまよえるたましい。)
☆☆やりたいこと☆☆
D列(イベントコード)を手動から自動入力にしたい。
☆☆前提条件☆☆
A列、B列は1セル1データで日付と曜日が入力済。
C列(イベント名)は、日によって1セルにイベント名が"改行"で入力されている。
(例)
4/3(月)は4つのイベントがC列の1セルに"改行"で4つ入力されている。
D列(イベントコード)はイベントコードを1セルに"改行"で手動入力している。
D列(イベントコード)はイベントによってイベントコードがない場合もある。
C列のイベントは月ごとに発生日が変わる。
C列、D列は、記載以外のイベント名やイベントコードは発生しない
☆☆やりたいこと☆☆
D列(イベントコード)を手動から自動入力にしたい。
関数のみでできるでしょうか。
いろいろ悩んでいますが、いいアイデアが思い浮かびません。
A列(日) B列(曜日) C列(イベント名) D列(イベントコード)
1 土
2 日
3 月 データ抽出10日分 A0100
データ送信 A0200
通知作成
再データ抽出
4 火
5 水
6 木 データ後処理 B0100
7 金
8 土
9 日
10 月 引落
11 火 データ後処理 B0200
12 水
13 木
14 金 会員用データ抽出 C0100
15 土
16 日
17 月
18 火 データ抽出25日分 A0101
データ送信 A0201
19 水
20 木
21 金
22 土
23 日
24 月
25 火 引落
26 水 データ後処理 B0201
27 木
28 金 会員用データ抽出 C0200
29 土
30 日
< 使用 Excel:Excel2016、使用 OS:Windows10 >
例えばイベント名・データ送信に対してコードがA0200、A0201と二つあるがこれはコード自体はA020でそのあとに順番が 付加されるということだろうか? もしそうだとするとコード・A010に対応するイベント名がデータ抽出10日分、データ抽出25日分と2種類あることになるが ここら辺の説明をお願いできないだろうか? (ねむねむ) 2023/04/17(月) 16:46:55
(?) 2023/04/17(月) 17:01:03
# 完全に内容が衝突しました。
(xyz) 2023/04/17(月) 17:14:44
1回目のデータ送信が A0200
2回目のデータ送信が A0201
となります。
1回目データ後処理 B0100
2回目データ後処理 B0200
3回目データ後処理 B0201
となります。
こちらで答えになってますでしょうか?
(さまよえるたましい。) 2023/04/17(月) 17:26:11
そうですよね。
1セル1データにしてほしいのですが、こちらのイベント名のデータは他チームから頂いているデータです。
イベントコードが必要なのは自分のチームなのです。
うーん、おっしゃる通りこちらでまずは、1セル1データに直してからイベントコード入力について考えた方がいいかもですね。
(さまよえるたましい。) 2023/04/17(月) 17:31:30
>1回目のデータ送信が A0200 >2回目のデータ送信が A0201 >となります。 >1回目データ後処理 B0100 >2回目データ後処理 B0200 >3回目データ後処理 B0201 >となります。
なんか、B000のルールに統一性がない様に見えるんですが、ホントですか?
常識的に考えると 1回目データ後処理 B0100 2回目データ後処理 B0101 3回目データ後処理 B0102
または 1回目データ後処理 B0100 2回目データ後処理 B0200 3回目データ後処理 B0300
が相場だと思うんですがねぇ。。
(半平太) 2023/04/17(月) 19:45:11
私も今年度から引き継いだ業務なので理由はよく分かりません。
おっしゃる通り分かりずらいですよね。
うーん、元データがわかりずらいとの評判(?)なので、元データを改行しないで1セル1データにいじれないか、やり方を模索してみます。
また分からないことが出てきそうなので、また相談させてください。
(さまよえるたましい。) 2023/04/18(火) 09:16:57
正しいならそれでいいですが、 その後はどうなるんですか?
B0202、B0203、・・・、ですか?
それとも、その後は絶無(つまり最多で3つまで)なんですか?
(半平太) 2023/04/18(火) 09:25:54
>データ抽出10日分 A0100 >データ抽出25日分 A0101 こちらの説明は? (ねむねむ) 2023/04/18(火) 09:28:56
>ねむねむ様
>データ抽出10日分 A0100 >データ抽出25日分 A0101 こちらも毎月同じイベント名・イベントコードが発生します。 発生日付は月によって変動しますが、イベント名やイベントコードに変更ありません。
こちらの返答で答えになってますかね...??
(さまよえるたましい。) 2023/04/18(火) 09:55:51
アイデアだけ。
1セル1イベントだとして。
データ抽出10日分!1 A0100 データ抽出25日分!1 A0101 データ送信!1 A0200 データ送信!2 A0201 データ後処理!1 B0100 データ後処理!2 B0200 データ後処理!3 B0201 会員用データ抽出!1 C0100 会員用データ抽出!2 C0200 という イベント名!出力回数 イベントコード という変換表を作成する。 対応するコードがないものは表に入れない。
そしてこの変換表に対して =IFERROR(VLOOKUP(C1&COUNTIF(C$1:C1,C1),変換表,2,FALSE),"") としてはどうだろうか? (ねむねむ) 2023/04/18(火) 10:45:55
すまない、 >=IFERROR(VLOOKUP(C1&COUNTIF(C$1:C1,C1),変換表,2,FALSE),"") は =IFERROR(VLOOKUP(C1&"!"&COUNTIF(C$1:C1,C1),変換表,2,FALSE),"") と修正してくれ。 (ねむねむ) 2023/04/18(火) 10:49:29
決め打ちでいいと言うことなので・・
D1セル =SUBSTITUTE(TRIM(REPT(" A0100",COUNTIF(C1,"*0*"))&REPT(" A0101",COUNTIF(C1,"*5*"))&CHOOSE(COUNTIF(C$1:C1,"*信*")*COUNTIF(C1,"*信*")+1,""," A0200"," A0201")&CHOOSE(COUNTIF(C$1:C1,"*後*")*COUNTIF(C1,"*後*")+1,""," B0100"," B0200"," B0201")&CHOOSE(COUNTIF(C$1:C1,"*用*")*COUNTIF(C1,"*用*")+1,""," C0100"," C0200"))," ",CHAR(10))
下にコピー
(半平太) 2023/04/18(火) 11:05:31
(さまよえるたましい。) 2023/04/18(火) 16:32:15
あなたはOFFICE TANAKAですか?
CHOOSE関数とか初めて知ったんですけど。
>CHOOSE(COUNTIF(C$1:C3,"*後*")*COUNTIF(C3,"*後*")+1,""," B0100"," B0200"," B0201")
指定の語が含まれているセルの個数が引数となり、コードを返す。
このあたりのね、応用力が半端ないですよね。
最初 " A0100" のとこ、なんで先頭に空白入れてるんだろって思ってましたが
SUBSTITUTE(TRIM〜" ",CHAR(10))のとこで改行入れるためでしたか。
>REPT(" A0100",COUNTIF(C3,"*0*")のとこなんですけど、
これIF分で記載するのがよく見るパターンですよね。
REPTも初めて見ました。
なんでIFじゃないのかと思いましたが、IF使わないのは可読性のためですか?
(さまよえるたましい。) 2023/04/18(火) 16:44:40
>なんでIFじゃないのかと思いましたが、IF使わないのは可読性のためですか?
IF関数の方がいいでしょうね。
今回同じようなIF文が続くので、Falseのケースに「""」を書き連ねるのがちょっとやだなーと思ったので。。 単なる個人的な好みの問題とさせてください。
あと、初っ端から =IF(C1="","",・・) と書き始めればセルが空白の時、計算量がぐっと減らせるのですが、 上と同じような感覚で省略しました。
作式は、最良形を目指すこともありますし、その時の気分で遊んだり、色々です。 そもそも、回答した数式を分析して追加質問する質問者もそんなにいないので、 緊張感を持たずに回答しております。暇つぶしなので m(__)m
(半平太) 2023/04/18(火) 17:14:06
なるほど、行数が多かったらIFのが計算量減らせるってことですね。
>回答した数式を分析して追加質問する質問者もそんなにいないので
人様の成果物をなぞるだけでは、自分で出力できるようにならないとは思いますが、
せめて分析して落とし込まないと身につかんなと思い、質問させていただきました。
いやいや大変勉強になりました。
ありがとうございました。
(さまよえるたましい。) 2023/04/19(水) 10:35:50
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.