特定の列 (または複数の列) の値に応じて、表示する行を選択する標準フィルターは誰もが知っています。同じことはまったく可能ですが、単一の行の値に応じてどの列を表示するかを選択できますか? 私がこれまでに持っている唯一のアイデアは、マクロを作成するか手動で行うことです。
2 に答える
まだコメントを投稿できません。
ツールで次のような通常の Excel 操作を実行できますか。
データ領域をコピーし、 specialを転置として貼り付けてから、列にフィルターを適用します。
マクロに関しては、Python コードをセルに直接書き込むことができる小さなヘルパー拡張機能をまとめました 。https://github.com/jsbueno/librepylot/releases/tag/0.7で確認してください。
それをインストールした後、セル内の次のようなコードは、あなたが望むことをすることができます:
for col in range(0, 26): #A - Z
S[0]._sheet.Columns.getByIndex(col) = bool(S[0][col, 0]._cell.getValue())
S[0] の最初の「0」の上はシート番号、S[0][col,0] の 2 番目の「0」は値を含む行 (行 1) のインデックスです。ここで可視性を設定しました。セルの計算値の真偽 (!= 0) に基づいています。必要なPython式を使用してください
これらの 2 行のコードは、セルのテキスト コンテンツとして挿入する必要があります - 2 行目がインデントされていること、および libreoffice がコマンドの最初の文字を大文字に変更しないことに注意してください (そして、デフォルトで行われる他の自動変換を防止します) ) 2 番目のセルに式を書き込む必要があります=pyexec(B1)
(コードがセルにあると仮定b1
) - フィルターを「再実行」する場合は、2 つのセルのいずれかを編集するだけです。