[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データ加工について』(あんの)
現在、データ入力しやすいように加工
データ情報↓↓↓
テスト情報
Disk サイズ 残容量表示 作業時間 日付範囲 Main 1 4000 GB(R) 2959 GB 18061 h 13.07.25 20:03 => 15.04.27 10:47 2 - GB - GB 10000 h - 3 - GB - GB 10000 h - 4 - GB - GB - h - 5 - GB - GB - h - 6 - GB - GB - h - 7 - GB - GB - h - 8 - GB - GB - h - 9 - GB - GB - h - TXT.1 1 - GB - GB - h - 2 - GB - GB - h - 3 - GB - GB - h - ・ ・ ・ ↑↑↑ データがあるところは数字 データが無いところは"-" データとデータの間は半角△
元々の上のデータはデータ抽出機能がなく、全選択コピーのべた貼りで行いました。
これを単純にEXCELに貼り付けても1セルに1行横長にデータとして認識されます。
一応、考えとしては…
1.テストデータをEXCELに貼り付ける
2.半角△を","(カンマ)に置き換える
3.「データ」→「区切り位置」を使う
である程度はデータ加工できますが、もう1点課題が出ました。
これが質問の主旨なんですが…
例えば
Main 1 4000 GB(R) 2959 GB 18061 h 13.07.25 20:03 => 15.04.27 10:47
2 - GB - GB 10000 h -
3 - GB - GB 10000 h -
4 - GB - GB - h -
ですが、このままだとMain以下が桁ずれしてしまいます。
希望は
Main 1 4000 GB(R) 2959 GB 18061 h 13.07.25 20:03 => 15.04.27 10:47
△ 2 - GB - GB 10000 h -
△ 3 - GB - GB 10000 h -
△ 4 - GB - GB - h -
ですが、元データ自体がそうなっているので難しいのでしょうか。
何かいい加工方法ありましたら、ご教授ください。
よろしくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
色々とデータ加工しているようですから、最後にセルA2から最終A列セルまで選択して
セル挿入、右方向へシフトではダメなのですか?
(ウッシ) 2015/05/12(火) 10:17
早速のご回答、ありがとうございます。
ご提示の通り、セル挿入で可能です。
ただし、このデータは
Main
TXT1
TXT2
・
・
・
とデータ数が変動となりセル指定が現状できないように思っています。
またデータは「Main」以下先頭に空白等、判定する材料がなく難しい状態です。
なるべく手動でなくというのが贅沢な希望なんですが、難しいでしょうか…。
(あんの) 2015/05/12(火) 10:47
With ActiveSheet Intersect(.UsedRange, .Range("A2").Resize(.UsedRange.Rows.Count)).Insert xlShiftToRight End With
こんな感じでも出来そうですけど。
(ウッシ) 2015/05/12(火) 10:56
たびたびのご教授、大変助かります。
確かに
With ActiveSheet Intersect(.UsedRange, .Range("A2").Resize(.UsedRange.Rows.Count)).Insert xlShiftToRight End With で動きそうですが、説明不足ですいません。
Main 1 4000 GB(R) 2959 GB 18061 h 13.07.25 20:03 => 15.04.27 10:47
2 - GB - GB 10000 h -
3 - GB - GB 10000 h -
4 - GB - GB - h -
5 - GB - GB - h -
6 - GB - GB - h -
7 - GB - GB - h -
8 - GB - GB - h -
9 - GB - GB - h -
TXT.1 1 - GB - GB - h -
2 - GB - GB - h -
3 - GB - GB - h -
・
・
・
のように
Main
TXT1
TXT2
・
・
・
等データは変動です。
また、各データはセクションが1〜9まであって
その先頭がMainでありTXT1〜であります。
A2以下を右シフトすると
Mainは問題なくてもTXT1〜がズレテしまい…。
データの途中をシフトする…難しい質問となり、申し訳ございません。
Main 1 4000 GB(R) 2959 GB 18061 h 13.07.25 20:03 => 15.04.27 10:47
△ 2 - GB - GB 10000 h -
△ 3 - GB - GB 10000 h -
△ 4 - GB - GB - h -
△ 5 - GB - GB - h -
△ 6 - GB - GB - h -
△ 7 - GB - GB - h -
△ 8 - GB - GB - h -
△ 9 - GB - GB - h -
TXT.1 1 - GB - GB - h -
△ 2 - GB - GB 10000 h -
△ 3 - GB - GB 10000 h -
△ 4 - GB - GB - h -
△ 5 - GB - GB - h -
△ 6 - GB - GB - h -
△ 7 - GB - GB - h -
△ 8 - GB - GB - h -
△ 9 - GB - GB - h -
TXT.2 1 - GB - GB - h -
△ 2 - GB - GB 10000 h -
△ 3 - GB - GB 10000 h -
△ 4 - GB - GB - h -
△ 5 - GB - GB - h -
△ 6 - GB - GB - h -
△ 7 - GB - GB - h -
△ 8 - GB - GB - h -
△ 9 - GB - GB - h -
などが希望変更データになります。
ほんと、変な質問で申し訳ございません。
(あんの) 2015/05/12(火) 11:14
本当の元データがどんなものか分からないのでなんとも言えないですけど、
Sub test1()
ActiveSheet.Columns("A:A").SpecialCells(xlCellTypeConstants, 1).Insert xlShiftToRight End Sub
とかではダメですか?
正確な情報が無いと正確な答えは出ないです。
(ウッシ) 2015/05/12(火) 11:21
急の体調不良、せっかくの回答いただいているのに返信できず
誠に申し訳ございません。
データを配列を見直したところ、下記のように編集することは
できませんでしょうか。
実データ ↓↓↓
テスト情報
Disk サイズ 残容量表示 作業時間 日付範囲 Main 1 4000 GB(R) 2959 GB 18061 h 13.07.25 20:03 => 15.04.27 10:47 2 - GB - GB 10000 h - 3 - GB - GB 10000 h - 4 - GB - GB - h - 5 - GB - GB - h - 6 - GB - GB - h - 7 - GB - GB - h - 8 - GB - GB - h - 9 - GB - GB - h - TXT.1 1 - GB - GB - h - 2 - GB - GB 56758 h - 3 - GB - GB 56758 h - 4 - GB - GB 56758 h - 5 - GB - GB 56758 h - 6 - GB - GB 56758 h - 7 - GB - GB 56758 h - 8 - GB - GB 56758 h - 9 - GB - GB 56758 h -
これを編集し、
Disk サイズ 残容量表示 作業時間 日付範囲 Main 1 4000 GB(R) 2959 GB 18061 h 13.07.25 20:03 => 15.04.27 10:47 2 - GB - GB 10000 h - 3 - GB - GB 10000 h - 4 - GB - GB - h - 5 - GB - GB - h - 6 - GB - GB - h - 7 - GB - GB - h - 8 - GB - GB - h - 9 - GB - GB - h - TXT.1 1 - GB - GB - h - 2 - GB - GB 56758 h - 3 - GB - GB 56758 h - 4 - GB - GB 56758 h - 5 - GB - GB 56758 h - 6 - GB - GB 56758 h - 7 - GB - GB 56758 h - 8 - GB - GB 56758 h - 9 - GB - GB 56758 h - とできませんでしょうか。 要は 取り出したデータは 「main」行、「TXT.1」行、「TXT.2」行、については改行ができておらず データの並びが少しおかしかった状態でした。 ここを改行できれば、各列が揃ったデータになりそうなため。
最後にウッシ様で教えていただいた
Sub Macro2()
'
' Macro2 Macro
'
'
Cells.Replace What:=" ", Replacement:=",", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _ ), Array(14, 1), Array(15, 1), Array(16, 1)), TrailingMinusNumbers:=True Range("A1").Select
Selection.SpecialCells(xlCellTypeBlanks).Select Selection.Delete Shift:=xlToLeft
end sub
で不要な空白等削除できます。
本当に勝手ではありますが、もう少しお付き合いしていただくと
大変助かります。
どうぞよろしくおねがいします。
(あんの) 2015/05/17(日) 05:01
あれから調べて
Sub 数字確認()
'
' Macro2 Macro
For i = 1 To 60
If Cells(i, 1) <> "" Then If IsNumeric(Cells(i, 1)) = False Then MsgBox "以外" Rows(i + 1).Select 'Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range(Cells(i, 2), Cells(i, 13)).Select Selection.Cut Destination:=Range(Cells(i, 1), Cells(i, 12))
End If Else MsgBox " 空白" End If Next
'
End Sub
こんなのに行き着きました。(msgboxは判定で入れたので無視してください)
ちなみにこの場合、「main」「TXT」など数値以外のものは上書きされてしまいますが、
当初データの並びを揃えたかったので概ね問題ないかなと思います。
この記述、どうでしょうか??
(あんの) 2015/05/17(日) 06:36
こうした挿入を行う場合は、下から上に実行したほうが良いと思います。
1行から60行と指定すると、途中で挿入されて行数が増えますから、
例えば当初の60行目はズレますね。
その結果、処理対象(60行目まで)から外れる可能性があります。
(γ) 2015/05/17(日) 07:28
失礼します。
Q/A内容を勘違いしているかもしれませんが。
なにも細工をせずに全行に対して区切り位置で処理した結果のA列が以下になったとします。 |[A] [1] |Main [2] | 2 [3] | 3 [4] | 4 [5] | 5 [6] | 6 [7] |TXT.1 [8] | 2 [9] | 3 [10]| 4 [11]| 5 [12]| 6 [13]|TXT.2 [14]| 2 [15]| 3 [16]| 4
このとき、A1:A16(A列全体でもよろしいですけど)を選択して、ホームタブ->検索と選択->条件を選択してジャンプ ここで【定数、数値】を指定すると A2:A6、A8:A12、A14:A16 が選択されます。 その領域に対して右方向のセル挿入をしてやれば Main や TXT.1 や TXT.2 の行はそのまま。 数字がある行のみシフトされます。
Sub Sample() Range("A1", Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeConstants, 1).Insert shift:=xlToRight End Sub
(β) 2015/05/17(日) 09:22
多分、こんな感じでも出来ると思います。
Sub test()
With Columns("A:A") .Replace What:=" ", Replacement:=",", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False .TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _ ), Array(14, 1), Array(15, 1), Array(16, 1)), TrailingMinusNumbers:=True .Replace What:="Main*", Replacement:="", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False .Replace What:="TXT*", Replacement:="", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False On Error Resume Next .SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft On Error GoTo 0 End With End Sub
(ウッシ) 2015/05/18(月) 07:49
いろいろご意見、ありがとうございます。
ウッシ様のロジック、使わせてもらっていますが、
あと少しで希望となる動きとなるためこのまま行きたいと考えています。
また、ご意見等伺うことがあるかと思いますが、
その時はぜひよろしくお願いします。
勝手でございますが、申し訳ございません。
ウッシ様
度々のアドバイス、ありがとうございます。
ここまでくると知識量を超えており、正直丸投げ状態で申し訳ございません。
さて、5/18(月)にいただいた分、試してみたのですが最後1点だけ。
mainは問題なく希望通りソートされましたが、
TXT.1以降がソートされませんでした。
(テスト前)
Main 1 4000 GB(R) 2959 GB 18061 h 13.07.25 20:03 => 15.04.27 10:47
2 - GB - GB 10000 h -
3 - GB - GB 10000 h -
4 - GB - GB - h -
5 - GB - GB - h -
6 - GB - GB - h -
7 - GB - GB - h -
8 - GB - GB - h -
9 - GB - GB - h -
TXT.1 1 - GB - GB - h -
2 - GB - GB 56758 h -
3 - GB - GB 56758 h -
4 - GB - GB 56758 h -
5 - GB - GB 56758 h -
6 - GB - GB 56758 h -
7 - GB - GB 56758 h -
8 - GB - GB 56758 h -
9 - GB - GB 56758 h -
TXT.2 1 - GB - GB - h -
2 - GB - GB 56758 h -
3 - GB - GB 56758 h -
4 - GB - GB 56758 h -
5 - GB - GB 56758 h -
6 - GB - GB 56758 h -
7 - GB - GB 56758 h -
8 - GB - GB 56758 h -
9 - GB - GB 56758 h -
(テスト後)
Main
1 4000 GB(R) 2959 GB 18061 h 13.07.25 20:03 => 15.04.27 10:47
2 - GB - GB 10000 h -
3 - GB - GB 10000 h -
4 - GB - GB - h -
5 - GB - GB - h -
6 - GB - GB - h -
7 - GB - GB - h -
8 - GB - GB - h -
9 - GB - GB - h -
TXT.1 1 - GB - GB - h - ←←← ここが改行されず…
2 - GB - GB 56758 h -
3 - GB - GB 56758 h -
4 - GB - GB 56758 h -
5 - GB - GB 56758 h -
6 - GB - GB 56758 h -
7 - GB - GB 56758 h -
8 - GB - GB 56758 h -
9 - GB - GB 56758 h -
TXT.2 1 - GB - GB - h - ←←← ここが改行されず…
2 - GB - GB 56758 h -
3 - GB - GB 56758 h -
4 - GB - GB 56758 h -
5 - GB - GB 56758 h -
6 - GB - GB 56758 h -
7 - GB - GB 56758 h -
8 - GB - GB 56758 h -
9 - GB - GB 56758 h -
"TXT.1"やデータ数によってはその後にくる"TXT.2"など
"."や数字でおかしな動きをするのでしょうか。
こちらの説明が不十分だったのかもしれませんが、
この点、わかりますでしょうか?
どうぞよろしくお願いします。
(あんの) 2015/05/20(水) 12:08
2015/05/20(水) 12:08 の(テスト前) データをExcelシートにコピペして
2015/05/18(月) 07:49 のコードを動かすとTXT.1以降も改行されましたけど?
(ウッシ) 2015/05/20(水) 12:20
さっそくのご返答、ありがとうございます。
確かにウッシ様がおっしゃるように動きますね。
ただ、PC間で移動が必要のため、まずテキストで保存します。
そこからデータをコピー貼り付けで
EXCELファイルにデータを持ってきます。
その際に何か変換されてしまうのでしょうか?
また違う問題にあたってしまった…。あと少しなんですが。
録画情報
Disk サイズ 残容量表示 作業時間 日付範囲 Main 1 4000 GB 0 GB 52556 h 13.10.24 18:32 => 14.05.27 17:06 2 - GB - GB 43671 h - 3 - GB - GB 52556 h - 4 - GB - GB 52556 h - 5 - GB - GB 52556 h - 6 - GB - GB 52556 h - 7 - GB - GB 52556 h - 8 - GB - GB 52556 h - 9 - GB - GB 52556 h - Txt.1 1 4000 GB 0 GB 13556 h 14.05.27 17:06 => 15.01.10 11:26 2 - GB - GB 13556 h - 3 - GB - GB 13556 h - 4 - GB - GB 13556 h - 5 - GB - GB 13556 h - 6 - GB - GB 13556 h - 7 - GB - GB 13556 h - 8 - GB - GB 13556 h - 9 - GB - GB 13556 h - Txt.2 1 4000 GB(R) 1784 GB 56758 h 11.10.15 5:53 => 15.05.13 18:04 2 - GB - GB 56758 h - 3 - GB - GB 56758 h - 4 - GB - GB 56758 h - 5 - GB - GB 56758 h - 6 - GB - GB 56758 h - 7 - GB - GB 56758 h - 8 - GB - GB 27909 h - 9 - GB - GB 56758 h - Txt.3 1 4000 GB 3990 GB 56758 h 12.02.07 3:56 => 12.08.25 15:16 2 - GB - GB 56758 h - 3 - GB - GB 56758 h - 4 - GB - GB 56758 h - 5 - GB - GB 56758 h - 6 - GB - GB 56758 h - 7 - GB - GB 56758 h - 8 - GB - GB 27909 h - 9 - GB - GB 56758 h - Txt.4 1 4000 GB 3990 GB 56758 h 12.08.25 15:16 => 13.03.27 10:04 2 - GB - GB 56758 h - 3 - GB - GB 56758 h - 4 - GB - GB 56758 h - 5 - GB - GB 56758 h - 6 - GB - GB 56758 h - 7 - GB - GB 56758 h - 8 - GB - GB 56758 h - 9 - GB - GB 56758 h - (あんの) 2015/05/20(水) 12:47
Txt.〜の行だけ、スペースが半角ではなくて全角になっているのでしょうか?
良く分からないですけど、
Sub test_1()
With Columns("A:A") .Replace What:=" ", Replacement:=",", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False .Replace What:=" ", Replacement:=",", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False .TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _ ), Array(14, 1), Array(15, 1), Array(16, 1)), TrailingMinusNumbers:=True .Replace What:="Main*", Replacement:="", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False .Replace What:="TXT*", Replacement:="", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False On Error Resume Next .SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft On Error GoTo 0 End With End Sub
とするとどうなりますか?
(ウッシ) 2015/05/20(水) 13:45
教えていただいたロジックでの結果です。
Disk サイズ 残容量表示 作業時間 日付範囲 1 4000 GB 0 GB 52556 h 13.10.24 18:32 => 14.05.27 17:06 2 - GB - GB 43671 h - 3 - GB - GB 52556 h - 4 - GB - GB 52556 h - 5 - GB - GB 52556 h - 6 - GB - GB 52556 h - 7 - GB - GB 52556 h - 8 - GB - GB 52556 h - 9 - GB - GB 52556 h - Ext.1 1 4000 GB 0 GB 13556 h 14.05.27 17:06 => 15.01.10 11:26 2 - GB - GB 13556 h - 3 - GB - GB 13556 h - 4 - GB - GB 13556 h - 5 - GB - GB 13556 h - 6 - GB - GB 13556 h - 7 - GB - GB 13556 h - 8 - GB - GB 13556 h - 9 - GB - GB 13556 h - Ext.2 1 4000 GB(R) 1784 GB 56758 h 11.10.15 5:53 => 15.05.13 18:04 2 - GB - GB 56758 h - 3 - GB - GB 56758 h - 4 - GB - GB 56758 h - 5 - GB - GB 56758 h - 6 - GB - GB 56758 h - 7 - GB - GB 56758 h - 8 - GB - GB 27909 h - 9 - GB - GB 56758 h - Ext.3 1 4000 GB 3990 GB 56758 h 12.02.07 3:56 => 12.08.25 15:16 2 - GB - GB 56758 h - 3 - GB - GB 56758 h - 4 - GB - GB 56758 h - 5 - GB - GB 56758 h - 6 - GB - GB 56758 h - 7 - GB - GB 56758 h - 8 - GB - GB 27909 h - 9 - GB - GB 56758 h - Ext.4 1 4000 GB 3990 GB 56758 h 12.08.25 15:16 => 13.03.27 10:04 2 - GB - GB 56758 h - 3 - GB - GB 56758 h - 4 - GB - GB 56758 h - 5 - GB - GB 56758 h - 6 - GB - GB 56758 h - 7 - GB - GB 56758 h - 8 - GB - GB 56758 h - 9 - GB - GB 56758 h - Ext.5 1 4000 GB 3990 GB 56758 h 13.03.27 10:04 => 13.10.24 18:26 2 - GB - GB 56758 h - 3 - GB - GB 56758 h - 4 - GB - GB 56758 h - 5 - GB - GB 56758 h - 6 - GB - GB 56758 h - 7 - GB - GB 56758 h - 8 - GB - GB 56758 h - 9 - GB - GB 56758 h - mainの文言は消えました。 その分桁ずれしてしまったのでしょうか。 (あんの) 2015/05/20(水) 16:24
いつの間にか、「TXT」が「Ext」になってますね。
.Replace What:="TXT*", Replacement:="", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
を
.Replace What:="Ext*", Replacement:="", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
に変更して下さい。
勝手にテストデータを変更試して出来ないって騒ぐのは無しにしましょう。
(ウッシ) 2015/05/20(水) 16:39
まことに申し訳ございません、テストデータが変わってたのと
それをキーにされていたのに気付かず、まことに申し訳ございませんでした。
データ、見事にできました。
あまり分かっていなかった者に丁寧に回答いただき
ありがとうございました。
もっと勉強し、もっとできるようにがんばります。
お付き合いいただき、ありがとうございました。
大変助かりました。
(あんの) 2015/05/20(水) 16:49
もし、Main とか Ext 以外のA列のセルが数値なら、
Sub test_2()
With Columns("A:A") .Replace What:=" ", Replacement:=",", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False .TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _ ), Array(14, 1), Array(15, 1), Array(16, 1)), TrailingMinusNumbers:=True On Error Resume Next .SpecialCells(xlCellTypeConstants, 2).Delete Shift:=xlToLeft On Error GoTo 0 End With End Sub
だけでもいいかも。
(ウッシ) 2015/05/20(水) 16:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.